在这里,我有点不知所措。我在 handleStopActivity
中看到这些 NullPointerException
的数量稳步增加。我怀疑随着 2.2 升级到 Droid 所有者的增加而增加,虽然这只是一个猜测。我自己从未见过崩溃,市场提供的堆栈跟踪没有提及我编写的任何类。因此,我不知道从哪里开始解决问题。
java.lang.NullPointerException
at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3674)
at android.app.ActivityThread.access$2600(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2153)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:144)
at android.app.ActivityThread.main(ActivityThread.java:4937)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
由于不知道原因,也不知道该提供哪些信息来辅助诊断,所以我先来概述一下: 我的应用是 WootWatcher。它跟踪 Woot.com 并通知用户有新的待售商品。它通过在单独进程中运行的服务来实现这一点。服务和主 Activity 通过aidl接口(interface)和回调相互通信。我还在服务和 Activity 中使用消息处理程序,并经常为昂贵的任务生成线程。
最佳答案
回顾这个 4 年前的问题,我意识到我应该能够诊断它,但不幸的是,我找不到与这些行匹配的任何 AOSP 版本。 Droid 一定使用了一些未提供的源代码的更改版本。
也就是说,Froyo 的 handleStopActivity()
没有太多机会出现空指针异常。当 Activity 已经停止或正在停止时,最有可能指向 Activity.finish()
。
这通常发生在您注册最终调用 finish()
的监听器并且您没有在 onPause()
中取消注册这些监听器时。
关于java - handleStopActivity 中的 NullPointerException -- 在堆栈跟踪中没有引用我的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3513859/