android - 使用 WorkManager 安排重复工作时出现 IllegalStateException

标签 android android-workmanager

我们有一个应用程序,我们使用最新版本的 Android 工作管理器 1.00.00 安排重复工作。这项工作每 20 分钟运行一次。发布更新后,我们注意到 Google Developer Console 中发生了以下崩溃。

java.lang.IllegalStateException: 
  at android.os.Parcel.readException (Parcel.java:1691)
  at android.os.Parcel.readException (Parcel.java:1636)
  at android.app.job.IJobScheduler$Stub$Proxy.schedule (IJobScheduler.java:158)
  at android.app.JobSchedulerImpl.schedule (JobSchedulerImpl.java:42)
  at androidx.work.impl.background.systemjob.SystemJobScheduler.scheduleInternal (SystemJobScheduler.java:161)
  at androidx.work.impl.background.systemjob.SystemJobScheduler.schedule (SystemJobScheduler.java:128)
  at androidx.work.impl.Schedulers.schedule (Schedulers.java:91)
  at androidx.work.impl.utils.ForceStopRunnable.run (ForceStopRunnable.java:100)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
  at java.lang.Thread.run (Thread.java:761)

该错误仅 (100%) 发生在运行 Android 7.0 和 7.1 的设备上。我们无法知道是什么导致了这种情况,因为在堆栈跟踪中没有提及我们的代码。

请注意,我们使用自定义 WorkManager 初始化。另请注意,由于我们尚未收到任何有关崩溃的电子邮件,因此用户可能看不到该错误。

有人知道这是怎么回事吗?

最佳答案

我已将上述情况报告给 WorkManager 问题跟踪器,并且收到了有意义的回复。这似乎是由特定设备上有问题的 JobScheduler 实现引起的。这是我收到的回复。

There are a few devices which ship buggy implementations of JobScheduler. This happens to be a bug in their JobScheduler implementation. These devices are small in number, and this does not happen all the time. WorkManager will reschedule your Worker gracefully when the app restarts. I would not worry about this issue.

这是相关链接:https://issuetracker.google.com/issues/122446608

关于android - 使用 WorkManager 安排重复工作时出现 IllegalStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55066691/

相关文章:

android - 身份验证 android 消息传递应用程序

android - 位图加载到设备中

android - WorkManager 作业未重新安排或一段时间后未触发

android - 使用 Android WorkManager 代替 AlarmManager 进行本地通知

android - 如何使用 Android Worker 观察最后发出的 WorkManager getWorkInfoByIdLiveData

android - 如何为网站制作Android版本

android - 提交表单按钮在 WebView 上不起作用

android - 无法在 WorkManager 中设置自定义工作工厂

Android HoneyComb - 请求已经关闭的游标

android - 使用 WorkManager 的定期日常工作请求