我使用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个帖子的列表,如果你们想要,我可以在这里发帖。
我不知道代码的哪一部分会导致此错误或如何复制错误。所以我希望你能引导我找到并解决这个案例。
答案 0 :(得分:2)
当前线程启动太晚,也就是说,当您在UncaughtExceptionHandler中收到未捕获的异常时,将启动子线程来上载错误日志。 上载错误日志时会创建HttpClient,但在创建时将ThreadSafeClientConnManager设置为管理连接。
通过查看ThreadSafeClientConnManager的源代码,发现ThreadSafeClientConnManager也打开了子线程,这导致在子线程中打开子线程的问题,这将在执行完成后在线程中导致uncaughtException()。启动后,java.lang.InternalError:运行时关闭期间启动的线程将被抛出。
此问题的解决方案是:预先创建HttpClient,因为HttpClient的创建也会启动线程,避免在uncaughtException()中创建,从而避免了在线程中启动线程的问题。
替代解决方案:万一它试图创建线程,请从代码中删除UncaughtExceptionHandler。
答案 1 :(得分:1)
我有同样的问题......
我更新了面料插件,然后更新了twitter sdk ..
然后清理我的项目并重建apk ..我的错误已经消失。
某些ANR发生时发生此错误。