1

安定した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コンポーネントのレイアウト方法に関連している可能性がありますか?アイデアがあったら共有してください...

ありがとう、アダム・ゼハビ。

4

1 に答える 1

2

最も可能性の高い原因は、ListView呼び出す前に更新されsetListAdapter()ていることです。断続的であるため、ここでスレッドの問題が発生している可能性があります。あるスレッドが原因で、ListView別のスレッドがを呼び出す前にが更新されていますsetListAdapter()

于 2011-06-28T11:19:57.650 に答える