마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

탭뷰에서 특정 탭만 누르면 프로그램이 죽습니다..

0 추천

탭 뷰 예제를 이용해서 앱을 개발하고 있습니다. 기본 탭을 2개로 구현해서 진행하다가 탭 하나가 더 필요해 탭을 추가 시켰습니다. 그런데 추가시킨 3번째 탭을 누르면 프로그램이 죽습니다. 1,2 탭은 왔다갔다 자연스럽구요. 1번째 탭에서 내장 임의 센서값(텍스트뷰의 변화를 일단 찍어만 보기위해)을 setText 해주는데  로그캣을 보니 여기서 null이 난다는? 것같아서 핸들러도 써보고 했는데 해결을 못하겠습니다. 물론 핸들러 써도 탭이 3개만 되면 프로그램이 죽습니다...Main소스와 로그캣 올려드립니다. 부탁드립니다. 정확히는 아니라도 해볼수 있는 어떤 방법이 있는지 가르쳐주시면 감사하겠습니다 ㅠㅠ

소스는 길어서 링크로 걸겠습니다.

http://blog.naver.com/wit010

로그캣입니다.

01-07 16:25:19.295 14590-14590/? E/SensorManager: Exception dispatching input event.
01-07 16:25:19.296 14590-14590/? E/AndroidRuntime: FATAL EXCEPTION: main
01-07 16:25:19.296 14590-14590/? E/AndroidRuntime: Process: org.androidtown.Monitoring_1, PID: 14590
01-07 16:25:19.296 14590-14590/? E/AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
01-07 16:25:19.296 14590-14590/? E/AndroidRuntime:     at org.androidtown.actionbar.MainActivity.onSensorChanged(MainActivity.java:167)
01-07 16:25:19.296 14590-14590/? E/AndroidRuntime:     at android.hardware.SystemSensorManager$SensorEventQueue.dispatchSensorEvent(SystemSensorManager.java:470)
01-07 16:25:19.296 14590-14590/? E/AndroidRuntime:     at android.os.MessageQueue.nativePollOnce(Native Method)
01-07 16:25:19.296 14590-14590/? E/AndroidRuntime:     at android.os.MessageQueue.next(MessageQueue.java:143)
01-07 16:25:19.296 14590-14590/? E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:122)
01-07 16:25:19.296 14590-14590/? E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5292)
01-07 16:25:19.296 14590-14590/? E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
01-07 16:25:19.296 14590-14590/? E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:372)
01-07 16:25:19.296 14590-14590/? E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
01-07 16:25:19.296 14590-14590/? E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
 

안드로이드초보입문 (220 포인트) 님이 2016년 1월 7일 질문

2개의 답변

+1 추천
널값에러내요  id값과 대소문자 확인헤보세여  제대로매칭이안됫나봅니다.
익명사용자 님이 2016년 1월 7일 답변
탭이 2개일 때는 잘 동작하는데 3개만 되면 안됩니다...
+1 추천

탭이 2개일 때는 잘 동작하는데 3개만 되면 안됩니다...

라고 생각하는게 더 이상하네요...

차라리, 어떤어떤 코드에서 널포인터 익셉션이 발생하는데

왜발생하는지 모르겠습니다. 라고 물어보는게 더 낫지 않나 싶네요

 

setText에 넣는String 값을 로그로 찍어보시고,

setText에 변수 대신 상수 값을  넣어서 확인해보시길

 

치솟음 (3,710 포인트) 님이 2016년 1월 7일 답변
로그도 찍었고 setText한 TextView도 값이 뜹니다.. 그런데 3번째 탭을 누르기만 하면 프로그램이 죽네요 ; 3번째 탭에는 아무것도 넣지 않았는데 말입니다.. 무튼 감사합니다ㅠ
...