Java 致命异常:android.app.RemoteServiceException:can';t在android.os.Handler.dispatchMessage上发送广播
我在android应用程序上使用广播消息(从io.socket我将广播消息发送到我的活动页面)。在一些设备上,三星SM-G950F和SM-A520F出现错误“Java 致命异常:android.app.RemoteServiceException:can';t在android.os.Handler.dispatchMessage上发送广播,java,android,broadcastreceiver,android-broadcast,android-broadcastreceiver,Java,Android,Broadcastreceiver,Android Broadcast,Android Broadcastreceiver,我在android应用程序上使用广播消息(从io.socket我将广播消息发送到我的活动页面)。在一些设备上,三星SM-G950F和SM-A520F出现错误“致命异常:android.app.RemoteServiceException:无法发送广播”。我在Fabric crashlytics上遇到了这个错误,我也无法重现这个问题。这是我从Fabric那里得到的日志 Fatal Exception: android.app.RemoteServiceException: can't del
致命异常:android.app.RemoteServiceException:无法发送广播
”。我在Fabric crashlytics上遇到了这个错误,我也无法重现这个问题。这是我从Fabric那里得到的日志
Fatal Exception: android.app.RemoteServiceException: can't deliver broadcast
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1813)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
我用同样的设备在同样的时间经历了同样的事情。问题最终与我支持的应用程序有关,但我认为三星推出了某种类型的更新,开始引发问题。在10月下旬之前,该应用程序从未出现过这个问题。这让我抓狂,因为我无法找出是哪个广播引发了这个问题 根据用户反馈,我最终缩小了范围,并做了以下更改: 1) 我浏览了该应用程序,并确保所有用于意图的自定义“操作”字符串都包含该应用程序的包名 2) 我从使用Context::sendBroadcast()切换到LocalBroadcastManager::sendBroadcast()
我的应用程序也面临同样的问题,我所做的是使用LocalBroadcastManager而不是上下文。Android文档还建议使用LocalBroadcastManager发送应用内广播接收器
//register your receiver like this
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver,
new IntentFilter("custom-event-name"));
// unregister like this
LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
// broadcastlike this
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
希望这会有所帮助。谢谢!:) 当服务尝试发送广播时,系统似乎正在销毁您的广播接收器活动/片段。请看源代码第498行。这似乎是一个随机的问题。一个可能的解决方法是在片段/活动的onResume()中注册广播接收器,并在onPause()中注销广播接收器。我甚至没有LocalBroadcastManager的用法,但我最近遇到了这个错误。不过,这是非常罕见的错误。到目前为止只发生过一次,在装有Android 9的OnePlus 5T上。。。你知道为什么会发生这种事吗?@android开发者同样的事情也发生在我身上。。你找到解决办法了吗?@Kamwave不知道为什么会这样。我只是选择忽略它,就像我见过的其他非常罕见的奇怪案例一样。我认为,一般来说,如果你看到纯中文设备的问题,你可以忽略它们,因为你几乎无法对此采取任何措施。请参见此处:,和此处:。也请考虑主演这个问题。中国制造商破坏应用程序真的很糟糕(而且他们默认这么做)。也看到了这些(虽然它们很少见),但只有在运行Android Pie的OnePlus设备上。这是不可改变的。