"Error receiving broadcast Intent {....}"的意思是什么?

23

我的应用程序包括一个通过广播接收位置信息的服务,还有一个注册了这些广播的活动。间歇性地,并且显然仅在某些设备上,该活动会出现以下错误:

class java.lang.RuntimeException
Msg: Error receiving broadcast Intent { act=com.company.app.ACTION_LOCATION_CHANGED flg=0x10 (has extras) } in com.company.app.library.activity.MyActivity$LocationReceiver@40f45bb8

由于无法重现错误,我无法使用调试器查看应用程序的状态,因此我只能依赖分析日志。

这个异常实际上是什么意思?也就是说,接收到它的问题是什么?


如何解决这个问题?我在接收器上也遇到了这个错误。 - Hardik Vasani
3个回答

37

这意味着在onReceive方法内有未捕获的异常。 检查一下可能导致此异常的原因... 没有代码和更详细的堆栈跟踪很难说。


18

另一种可能性是日志中稍微往下有更多的信息。

例如:我刚刚遇到了这个错误,而日志数据看起来像:

java.lang.RuntimeException: Error receiving broadcast Intent { act=com.example.bluetooth.le.ACTION_DATA_AVAILABLE flg=0x10 (has extras) } in myAppName.BlunoLibrary$5@41f792f8
    at LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:778)
    at Handler.handleCallback(Handler.java:733)
    at Handler.dispatchMessage(Handler.java:95)
    ...bunch of internal android stuff...
Caused by: java.lang.NullPointerException
    at myAppName.MainActivity.onSerialReceived(MainActivity.java:96) <-- hey look, my code screwed up!
    at myAppName.BlunoLibrary$5.onReceive(BlunoLibrary.java:327)
    at LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:768)
    at Handler.handleCallback(Handler.java:733) 
    ...bunch of other normal-looking callstack stuff...

那个“由...引起”的次要原因非常明确地指出了我犯了错误的位置。


那确实帮助我找到了准确的问题。 - akshay1188

4
另一个可能的原因是您没有在活动的onPause()方法中注销接收器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接