android - SecurityException : Caller no longer running, 最后停止

标签 android android-8.0-oreo android-9.0-pie jobintentservice

描述:

我们一直在我们的 fire base 控制台上为拥有 android 8 (Oreo) + 设备的用户观察到此崩溃。堆栈跟踪显示是您的内部方法导致了这个致命异常。

环境和设备详细信息

设备信息:

  • 设备:三星、华为、HMD Global、小米等
  • 操作系统版本:Android 8.0 (Oreo), Android 9.0 (Pie)
  • 崩溃百分比:Android 8.0 (99%),Android 9.0 (1%)

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、谷歌等设备)

如果您需要更多信息,请告诉我。

最佳答案

只有在启用混淆器时才会出现这个问题。通过将 OneSignal 添加到我的混淆器规则中,OneSignal 在 Android 8.0 和 8.1 上成功运行;

-keep class com.onesignal.JobIntentService$* {*;}

关于android - SecurityException : Caller no longer running, 最后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52585390/

相关文章:

android - java.lang.IllegalArgumentException : Navigation destination that matches request NavDeepLinkRequest 异常

Android - 找不到与目标 'Android 1.6' 错误兼容的 AVD

java - Android O - 后台服务限制未按预期工作

android - 如何让用户恢复到应用自定义声音?

android - ITelephony.endCall() 不再适用于阻止 Android 8/Android O/API 26 中的调用

android - 无法使用文件提供程序从内部存储打开 PDF 以便在 Android 8 和 9 上查看

android - 针对不同环境构建不同的 Android

android - 谷歌地图放大和缩小android

android-9.0-pie - env(safe-area-inset-top) 不适用于 Android Pie + WebView 69

android - 支持 Android Pie 中的浅色和深色主题