IllegalThreadStateException OneSignal 崩溃解决方法

Eru*_*aru 7 multithreading android thread-safety push-notification onesignal

基于OneSignal 的 github 问题中提到的错误,我们的应用程序每天都会收到大约1000 次崩溃。


错误解释:

不幸的是,我无法重现这个问题。所有崩溃都来自 Crashlytics 报告。SDK 版本 3.12.4

设备:

1) Samsung: Galaxy A5(2017), Galaxy S8, Galaxy A50, Galaxy S10+, Galaxy S10  
2) Xiaomi: Mi A2, Mi A2 lite, Mi A1, Mi A3, Redmi Note 5 Pro 
3) Oneplus: ONEPLUS A6010, OnePlus5T, GM191011, GM19008, OnePlus58
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

Caused by java.lang.IllegalThreadStateException
       at java.lang.Thread.start(Thread.java:724)
       at com.onesignal.OneSignalPrefs$WritePrefHandlerThread.startDelayedWrite(OneSignalPrefs.java:117)
       at com.onesignal.OneSignalPrefs.startDelayedWrite(OneSignalPrefs.java:183)
       at com.onesignal.OneSignal.setAppContext(OneSignal.java:601)
       at com.onesignal.OneSignalSyncServiceUtils.doBackgroundSync(OneSignalSyncServiceUtils.java:175)
       at com.onesignal.SyncJobService.onStartJob(SyncJobService.java:40)
       at android.app.job.JobService$1.onStartJob(JobService.java:62)
       at android.app.job.JobServiceEngine$JobHandler.handleMessage(JobServiceEngine.java:108)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:280)
       at android.app.ActivityThread.main(ActivityThread.java:6748)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Run Code Online (Sandbox Code Playgroud)

题:

主要问题是他们将其标记为中等优先级,并且错误存在大约 3 个月。就因为这个问题,我们的生命体征就要折腾了。这让我们付出了很多代价。

是否存在任何可以暂时解决问题的解决方法?


PS:

如果需要,我准备提供更多相关信息。提前致谢!

Eru*_*aru 0

错误已修复


将IllegalThreadStateException不再在 3.13.0发布中抛出。您现在将看到抛出根异常,以便可以进一步诊断这些崩溃。