handleStopActivity中的NullPointerException - 在堆栈跟踪中没有对我的代码的引用

时间:2010-08-18 15:39:34

标签: java android

我在这里有点不知所措。我已经看到NullPointerException中这些handleStopActivity的数量稳步增加。我怀疑随着2.2升级到Droid用户的增加而增加了coinicides,尽管这只是猜测。我自己从未见过崩溃,市场提供的堆栈跟踪没有提到我写过的任何类。因此,我不知道从哪里开始解决问题。

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并通知用户新的待售物品。它通过在单独进程中运行的服务来实现。服务和主要活动通过aidl接口和回调相互通信。我还在服务和活动中使用消息处理程序,并经常为昂贵的任务生成线程。

5 个答案:

答案 0 :(得分:2)

回顾这个4岁的问题,我意识到我应该能够诊断它,但不幸的是我无法找到这些线路匹配的任何AOSP版本。 Droid必须使用一些不可用的源的更改版本。

那就是说,Froyo的handleStopActivity()没有很多机会获得空指针异常。当活动已经停止或正在停止时,最有可能指向Activity.finish()

这通常发生在您注册最终调用finish()并且您未在onPause()中注销这些侦听器的侦听器时。

答案 1 :(得分:1)

如何向Android项目报告错误(会检查是否有其他人报告错误)?如果您的代码中没有代码在堆栈跟踪中,则表示框架中存在错误。虽然可能在你的其他代码中你打破例如一个未说明的合同/假设。

答案 2 :(得分:0)

请参阅此问题的答案。看起来像一个已知的问题,也有一个解决方案。 希望它有所帮助...

NullPointerException on onSaveInstanceState with AndroidFragments

答案 3 :(得分:0)

我不知道,如果你还在寻找解决方案,但这就是我发现的。如果您找到了真正的解决方案,请告诉我。

我刚遇到同样的问题..我从来没有遇到过这个问题而且没有更改代码,它出现了一些原因。通过使用谷歌,我发现约瑟夫发布的问题,但这似乎并不完全相同。我还找到了thisthis。这两个似乎有相同的问题,但没有解决方案..然后我找到了this blog

作者讲述了它的来源 - Android中的一个错误。此外,它与Cursor有关。这并没有解决我的问题,但我注意到,在调用Cursor之前我使用了startActivity(someIntent);几行(我也称为finish(),但删除该行没有差异) 我试图删除包含Cursor的行,然后突然再次起作用。
我不知道,为什么它有效,但确实如此。我刚刚将Cursor的代码移到我的其他Activity

这绝对不是一个好的解决方案,但它对我有用。

还有一个问题:您是否使用Cursor并致电startActivity(..)或类似的东西?

修改
我刚刚发现,我没有解决问题,我只是测试不够。我开始的Activity运行良好,直到我想要创建我之前开始的Activity中的下一个Activity。在开始下一个Activity时,我的应用程序再次崩溃。

答案 4 :(得分:-2)

也许尝试在try-catch块中包装方法handleStopActivity并自己处理错误,为自己提供更多细节并防止“强制关闭”?