说明:
我们一直在火基控制台上为拥有android 8(Oreo)+设备的用户观察到此崩溃。堆栈跟踪显示它是导致此致命异常的内部方法。
环境和设备详细信息
设备信息:
OneSignal SDK版本:
buildscript {
repositories {
maven { url 'https://plugins.gradle.org/m2/'}
}
dependencies {
classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.11.0, 0.99.99]'
}
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
dependencies {
implementation('com.onesignal:OneSignal:[3.9.1, 3.99.99)') {
exclude group: 'com.google.android.gms'
}
}
堆栈跟踪信息
Caused by java.lang.SecurityException: Caller no longer running, last stopped +2s26ms because: timed out while starting
at android.os.Parcel.readException(Parcel.java:1959)
at android.os.Parcel.readException(Parcel.java:1905)
at android.app.job.IJobCallback$Stub$Proxy.dequeueWork(IJobCallback.java:191)
at android.app.job.JobParameters.dequeueWork(JobParameters.java:196)
at android.support.v4.app.JobIntentService$JobServiceEngineImpl.dequeueWork(SourceFile:314)
at android.support.v4.app.JobIntentService.dequeueWork(SourceFile:639)
at android.support.v4.app.JobIntentService$CommandProcessor.doInBackground(SourceFile:389)
at android.support.v4.app.JobIntentService$CommandProcessor.doInBackground(SourceFile:382)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
我们有99%的崩溃是在Android O上发生的,其中有大量用户在三星设备上使用(但这似乎不是仅三星的问题,还有相当数量的HTC,LG, Google等设备)
如果您需要更多信息,请告诉我。
答案 0 :(得分:0)
仅当启用proguard时这才是问题。通过将其添加到我的proguard规则中,OneSignal在Adnroid 8.0和8.1上成功工作;
-keep class com.onesignal.JobIntentService$* {*;}