我们从 Firebase 收到了很多有关此次崩溃的崩溃报告。
Fatal Exception: android.app.RemoteServiceException$CannotDeliverBroadcastException: can't deliver broadcast
at android.app.ActivityThread.throwRemoteServiceException(ActivityThread.java:2219)
at android.app.ActivityThread.-$$Nest$mthrowRemoteServiceException()
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2508)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8762)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:604)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
仅在运行 Android 13 (API 33) 的三星设备上发生崩溃
我们关注了这篇文章 CannotDeliverBroadcastException 仅在运行 Android 12 的 Pixel 设备上
问题是 - 我们不能只是沉默/吸收这种崩溃,因为我们的一些应用程序功能是基于广播(BroadcastReceiver,在清单中注册)构建的。
我们实际上需要防止这次崩溃(以某种方式:))
我们还在谷歌问题跟踪器上检查了这个问题,但似乎没有解决方案 https://issuetracker.google.com/issues/245258072
你们有人找到解决方案吗? 谢谢
这可能根本不是广播错误,而是由内存碎片(OOM)引起的连锁错误。
在应用程序运行时对其进行分析,并确保它没有耗尽分配的内存。
这里有一些非常很好的建议可以尝试。在计时器上弹跳服务(终止/重新启动)也可能会阻止这种行为。