【发布时间】:2020-06-15 10:35:15
【问题描述】:
根据 OneSignal 的 github issues 中提到的错误,我们的应用每天会收到大约 1k 次崩溃。
错误说明:
很遗憾,我无法重现此问题。所有的崩溃都来自 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 个月的错误。就因为这个问题,我们的生命体征正在折腾。这让我们付出了很多。
是否存在可以临时解决问题的解决方法?
附注:
如果需要,我准备提供更多相关信息。提前致谢!
【问题讨论】:
-
对我来说最明显的解释是你正在启动一个已经启动的线程。可能还有其他解释,但这对我来说似乎是最有可能的。
-
@PiRocks 我只是使用 OneSignal 库,我没有启动任何线程
-
您使用的是最新的 OneSignal 吗?
-
@PiRocks 最新版本 3.12.6
标签: android multithreading push-notification thread-safety onesignal