未知错误 "Thread starting during runtime shutdown"

Unknown bug "Thread starting during runtime shutdown"

我正在使用 Fabric 报告我的应用程序崩溃。 我收到这些报告已经很长时间了,而且崩溃的次数一直在增加。

Fatal Exception: java.lang.InternalError: Thread starting during runtime shutdown
   at java.lang.Thread.nativeCreate(Thread.java)
   at java.lang.Thread.start(Thread.java:730)
   at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:941)
   at java.util.concurrent.ThreadPoolExecutor.processWorkerExit(ThreadPoolExecutor.java:1009)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1151)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
   at java.lang.Thread.run(Thread.java:761)

本报告还附有 62 个主题的列表,如果你们需要,我可以 post 在这里。

我不知道是哪部分代码导致了这个问题,也不知道如何重现该错误。所以我希望你能指导我找到并解决这个案例。

我遇到了同样的问题...

我更新了fabric插件,然后更新了twitter sdk..

然后清理我的项目并重建 apk..我的错误已经消失。

有时会在出现 ANR 时发生此错误。

当前线程启动太晚,即在UncaughtExceptionHandler中收到未捕获的异常时,启动子线程上传错误日志。 上传错误日志时创建了HttpClient,但创建时设置了ThreadSafeClientConnManager来管理连接。

通过查看ThreadSafeClientConnManager的源码,发现ThreadSafeClientConnManager也开启了子线程,导致子线程中开启子线程的问题,会在执行完成后的线程中引发uncaughtException()只有当线程已启动,java.lang.InternalError:将抛出在运行时关闭期间启动的线程。

这个问题的解决方法是:提前创建HttpClient,因为HttpClient的创建也会启动线程,避免在uncaughtException()中创建,从而避免启动的问题线程中的线程。

替代解决方案:从您的代码中删除 UncaughtExceptionHandler,以防它尝试创建线程。

我遇到了同样的问题,原因是我的 XML 文件中有一行。 对我来说是

    android:background="?android:attr/selectable"

该属性未定义。