web-dev-qa-db-ja.com

IllegalThreadStateException OneSignalクラッシュの回避策

私たちのアプリは、OneSignal'sgithub issues で言及されたバグに基づいて、毎日約1,000件のクラッシュを受け取ります。


バグの説明:

残念ながら、この問題は再現できません。クラッシュはすべて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

スタックトレース:

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)

質問:

主な問題は、中程度の優先度としてタグ付けし、バグが約3か月存在することです。私たちのバイタルは、この問題のためだけにトスになっています。それは私たちに多くのコストをかけています。

問題を一時的に解決できる回避策はありますか?


P.S:

必要に応じて、より多くの関連情報を提供する準備ができています。前もって感謝します!

6
Erumaru

バグが修正されました


IllegalThreadStateException3.13.0リリースでスローされなくなりました。これらのクラッシュをさらに診断できるように、代わりにルート例外がスローされていることがわかります。

0
Erumaru