我偶尔会遇到此异常:
Context.startForegroundService()随后未调用 Service.startForeground()android.app.ActivityThread.main
有趣的是,我不知道何时或在何处调用startForegroundService的堆栈跟踪。我知道它不在我的代码中,但是可能在我正在使用的第三方库之一中。不幸的是,堆栈跟踪几乎毫无用处。当然,我不能可靠地复制它,那太容易了!有人对如何追踪原点有任何提示/想法吗?
Fatal Exception: android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground()
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1790)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6651)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:810)
答案 0 :(得分:0)
如果它在“实验室”中崩溃,则可以查看Logcat以查看崩溃前10秒钟启动了什么服务。
除此之外,还可以使用Android Studio清单编辑器中的“合并清单”标签,查看清单中显示了哪些服务(以及哪些库贡献了这些清单条目)。这至少缩小了哪些库可能是罪魁祸首。如果其中任何一个是开源的,则可以在源代码中查找它们是否似乎调用了startForegroundService()
。