安定したAndroidアプリケーションがあり、エラーなしで数日間動作します。たまにアプリケーションのクラッシュが発生し、スタックトレースを見るたびに、次のようになります。
06-05 12:05:58.939: DEBUG/AndroidRuntime(3149): Shutting down VM
06-05 12:05:58.939: WARN/dalvikvm(3149): threadid=1: thread exiting with uncaught exception (group=0x40028a00)
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): FATAL EXCEPTION: main
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): java.lang.NullPointerException
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): at android.widget.AbsListView.obtainView(AbsListView.java:1304)
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): atandroid.widget.ListView.makeAndAddView(ListView.java:1727)
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): at android.widget.ListView.fillDown(ListView.java:652)
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): at android.widget.ListView.fillGap(ListView.java:623)
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): at android.widget.AbsListView.trackMotionScroll(AbsListView.java:2944)
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:2485)
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): at android.os.Handler.handleCallback(Handler.java:587)
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): at android.os.Handler.dispatchMessage(Handler.java:92)
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): at android.os.Looper.loop(Looper.java:142)
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): at android.app.ActivityThread.main(ActivityThread.java:4914)
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): at java.lang.reflect.Method.invokeNative(Native Method)
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): at java.lang.reflect.Method.invoke(Method.java:521)
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-05 12:05:58.949: ERROR/AndroidRuntime(3149): at dalvik.system.NativeStart.main(Native Method)
Androidの内部オブジェクトへの参照のみがあることに注意してください。
私たちがこれを経験した他の時がありました、他のスタックトレースもAndroid内部スタックトレースのみでNPEを再びスローし、その中のオブジェクトやメソッドのいずれも参照せずに、この場合はウィジェットであり、最後にLayoutViewからのそのようなNPEを見たことがあります。また、GroupViewでスローされたNPEに関する別の質問も見つかりました。
重要なのは、アプリケーションが機能することです。まったく同じシナリオを使用してクラッシュを1000回再現しようとすると、これが発生することはありませんが、時々発生します。
他の誰かがこれを経験しましたか?UIコンポーネントのレイアウト方法に関連している可能性がありますか?アイデアがあったら共有してください...
ありがとう、アダム・ゼハビ。