안드로이드 개발 질문/답변
(글 수 45,052)
아래 에러는 실행 시 뜰 때도 있고 안 뜰 때도 있는데
이 에러가 뜨더라도 잠시 까만화면이다가 어플이 다시 잘 작동하기는 합니다...
Caused by: java.lang.NullPointerException 가 있는데 어디서 발생한 건지 알 수가 없는 경우는 어떻게 하나요?
보통 보면 프로젝트의 어느 부분에서 에러가 발생했는지 나오고 더블클릭하면 거기로 이동하던데
여기선 그런게 없더라구요
그리고 윗부분에 적힌 에러들은 잘 보지 못하던 건데 어떻게 해결해야할지 막막합니다
경험적으로 이럴 땐 어떤 부분을 보는 게 좋을까요?
07-01 04:27:55.799: W/dalvikvm(8117): threadid=1: thread exiting with uncaught exception (group=0x40c3e1f8)
07-01 04:27:55.804: E/AndroidRuntime(8117): FATAL EXCEPTION: main
07-01 04:27:55.804: E/AndroidRuntime(8117): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException
07-01 04:27:55.804: E/AndroidRuntime(8117): at android.app.LoadedApk.makeApplication(LoadedApk.java:482)
07-01 04:27:55.804: E/AndroidRuntime(8117): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3950)
07-01 04:27:55.804: E/AndroidRuntime(8117): at android.app.ActivityThread.access$1300(ActivityThread.java:127)
07-01 04:27:55.804: E/AndroidRuntime(8117): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1197)
07-01 04:27:55.804: E/AndroidRuntime(8117): at android.os.Handler.dispatchMessage(Handler.java:99)
07-01 04:27:55.804: E/AndroidRuntime(8117): at android.os.Looper.loop(Looper.java:137)
07-01 04:27:55.804: E/AndroidRuntime(8117): at android.app.ActivityThread.main(ActivityThread.java:4507)
07-01 04:27:55.804: E/AndroidRuntime(8117): at java.lang.reflect.Method.invokeNative(Native Method)
07-01 04:27:55.804: E/AndroidRuntime(8117): at java.lang.reflect.Method.invoke(Method.java:511)
07-01 04:27:55.804: E/AndroidRuntime(8117): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
07-01 04:27:55.804: E/AndroidRuntime(8117): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
07-01 04:27:55.804: E/AndroidRuntime(8117): at dalvik.system.NativeStart.main(Native Method)
07-01 04:27:55.804: E/AndroidRuntime(8117): Caused by: java.lang.NullPointerException
07-01 04:27:55.804: E/AndroidRuntime(8117): at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:362)
07-01 04:27:55.804: E/AndroidRuntime(8117): at android.app.LoadedApk.getClassLoader(LoadedApk.java:305)
07-01 04:27:55.804: E/AndroidRuntime(8117): at android.app.LoadedApk.makeApplication(LoadedApk.java:474)
07-01 04:27:55.804: E/AndroidRuntime(8117): ... 11 more
추가 ) 주로 언제 발생하는지 보니까
휴대폰을 컴퓨터에 연결해서 Run 시켜보고(그리고나서 어플 끄지 않음) 다시 프로그램 수정해서 또 Run 하면
위 에러가 주로 발생하는 것 같아요
그러니까 휴대폰에 어플을 꺼 둔 상태에서 Run 시킬 때는 저 에러가 나타나지 않구요...
2012.07.02 00:05:48
저도 AsyncTask 공부하면서 저런에러를 많이 접했는데요.
String str = "a" ;
if ( str == null ) {
return "Err" ;
}
이런식으로 초기화나 대입후에 검증을 하다보니 어디서 눌포인트가 삽입됬는지 금방 추적되더군요.
이클립스는 캐스팅형변환,문법오류에는 바로 찾을수있는데 눌포인트가 삽입대는 상황은 인지를 못하나봐요
편집창에서는 에러가 안뜨는데 자꾸 눌포인트 익셉션 일어나서 짜증이났던기억이..




일단 NullPointerException은 객체가 생성이 안된 상태에서(단지 참조변수로만 선언되고 아직 객체가 생성 안된 상태에서) 발생하는 에러니까 그걸 찾아가면 될것 같은데요.