2016-09-11 2 views
-4

참고 : 스택 오버플로에서 일반적으로 볼 수있는 문제에 대한 정식 질문입니다.NullPointerException 및 findViewById()

내 Android 앱이 고장났습니다. I checked the stacktrace from the logcat되고있어 원인이 라인

myEditText.setText(myString); 

어떤 문제가 내가 그것을 어떻게 해결합니까에서 NullPointerException 것으로 나타났습니다?

+0

@ 4castle이 질문은 더 구체적입니다. 물론, 나는 그 질문에 대한 링크를 나의 것에 포함시키는 방법을 찾아야했다. –

답변

2

코드에 대해 자세히 알려주십시오. 난 당신이 제대로

뭔가 같이 myEditText를 초기화하지 않았다고 생각 :

EditText myEditText = findViewById(R.id.xxx); 
1

오류 메시지가 myEditText가 제대로 초기화되지 않았 음을 나타냅니다. 먼저 findViewById()으로 전화해야합니다. 이미 이런 짓을하는 경우 예를

myEditText = findViewById(R.id.text); 

를 들어, 자원 ID가 활동 또는 조각에 대한 XML 레이아웃 파일에 선언 된 하나와 일치하는지 다시 확인.

또한 활동 onCreate()에서 setContentView()으로 전화하는 것을 잊어 버린 경우 일 수 있습니다.

+0

또한'setContentView'를 호출하기 전에'View'에 대한 참조를 얻으려는 경우 – jlynch630

+0

@jDawg 좋습니다. 나는 그것을 추가 할 것이다. –

2

당신은 그것을 유지 활동의 모든 EditText Object와 myEditText 참조 .. 친절

당신이 그것을 초기화해야를 초기화하지 않았고 당신은 바로 이곳에 그 문을 사용합니다.

1

findViewById에서 널 포인터 예외가 발생할 때마다 기억해야합니다. XML 내부에서 ID가 선언되고 Java 파일이 일치하지 않거나 자바 측에서 XML로 선언되지 않은 ID에 액세스하려고하는 경우에만 발생할 수 있습니다 측면.

또 다른 점은 setText() 메서드를 사용하고 있고 String 객체를 전달하고 있다는 것입니다. 이제는 null 객체이고 값이없는 경우 null 포인터가 발생할 수 있습니다.

+1

답변 해 주셔서 감사합니다. 이 상황에서 NPE의 유일한 이유는 아닙니다. –

+0

또 다른 이유는 무엇입니까? 제발 알려 주시기 바랍니다 – TapanHP

+0

다른 답변을 읽어 보시기 바랍니다 여기에. –

1

""을 사용하고 문자열을 추가하십시오. 아마도 null을 반환하는 myString.

myEditText.setText("" + myString); 
+0

지적 해 주셔서 고맙습니다. 이것은 실제로 내 인위적인 예에서의 잘못입니다. –