我定期收到Android Market上報告的不可重現的例外情況。堆棧跟蹤總是開頭是這樣的:ZygoteInit電話是什麼?
at ...
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4306)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
ZygoteInit $ MethodAndArgsCaller似乎是通過代碼來調用應用程序的方法,而不是直接的。這是怎麼發生的?
最後複製這些異常如下的一個:觸摸應用程序圖標,輕觸文本字段以彈出對話框,按Home,殺應用PID,觸摸應用程序圖標,然後按返回。在onSaveInstanceState和onRestoreInstanceState中添加了應用程序實例變量的保存和恢復以修復問題。
仍然想找到ZygoteInit調用的地方的描述。
是否有可能你有孤立的偵聽器設置試圖調用回調,這就是你所看到的直接調用?..跟蹤似乎並不奇怪。 –
該應用實現了View.OnClicklistener.onClick(View)。但是,堆棧跟蹤不會以onClick中的開關開始;它只顯示其中一種情況下的方法調用,甚至不是該情況下的第一種方法。另外,另一種情況下的方法必須先運行。正常操作的日誌從不顯示任何對ZygoteInit的調用。這就是讓我的蹤跡看起來很奇怪。 – user877342