IllegalArgumentException: 没有这样的服务 ComponentInfo{JobIntentService}
IllegalArgumentException: No such service ComponentInfo{JobIntentService}
关于这个问题的答案对我没有帮助,我已经声明了所有权限并且已经在我的代码中接受了答案。
AppInfoJobService
(CustomJobIntentService) 在 Android OS 8 台以上的设备上抛出以下错误,这种情况很少发生,无法重现。
我们在BaseActivity
的onCreate
中enqueueWork。我们主要有一个activity和fragments。
Fatal Exception: java.lang.IllegalArgumentException: No such service ComponentInfo{<app package>AppInfoJobService}
at android.os.Parcel.readException(Parcel.java:2009)
at android.os.Parcel.readException(Parcel.java:1951)
at android.app.job.IJobScheduler$Stub$Proxy.enqueue(IJobScheduler.java:211)
at android.app.JobSchedulerImpl.enqueue(JobSchedulerImpl.java:53)
at android.support.v4.app.JobIntentService$JobWorkEnqueuer.enqueueWork(JobIntentService.java:342)
at android.support.v4.app.JobIntentService.enqueueWork(JobIntentService.java:522)
at android.support.v4.app.JobIntentService.enqueueWork(JobIntentService.java:500)
at <application package>AppInfoJobService.startWork(AppInfoJobService.java:254)
at <application package>MyApplication.onStartStopChanged(MusicApplication.java:694)
at <application package>AppStateMonitor.notifyStartStop(AppStateMonitor.java:150)
at <application package>AppStateMonitor.access[=10=]0(AppStateMonitor.java:14)
at <application package>AppStateMonitor$CreateDestroyRunnable.run(AppStateMonitor.java:71)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6545)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:857)
当应用程序处于后台或应用程序被终止并尝试重新启动服务时,您无法使用方法 startService 启动服务或 intentService。
据我所知,情况是(正如你所说的很少发生)当应用程序不在内存中时,应用程序试图以某种方式重新启动应用程序。
注意:由于我没有足够的声誉来发表评论并想帮助作者,因此开始一个单独的线程。
这实际上是具有 Android Oreo 的 LAVA 设备的问题,并且在其他设备上工作得很好。
我也在 LAVA Z60s 和 LAVA Z61 上观察到了这一点。
正在添加来自 crashlytics 的相关信息
我的情况是我没有在 AndroidManifest.xml 中创建服务,所以它没有找到该服务。
为此,请添加以下内容:
...
/activity>
<service
android:name=".YOUR_FOLDER.YOUR_SERVICE_FILENAME"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="false" />
<receiver
android:name=".YOUR_FOLDER.YOUR_RECEIVER_FILENAME"></receiver>
</application>
切换到新版本后问题终于解决了Android WorkManager
关于这个问题的答案对我没有帮助,我已经声明了所有权限并且已经在我的代码中接受了答案。
AppInfoJobService
(CustomJobIntentService) 在 Android OS 8 台以上的设备上抛出以下错误,这种情况很少发生,无法重现。
我们在BaseActivity
的onCreate
中enqueueWork。我们主要有一个activity和fragments。
Fatal Exception: java.lang.IllegalArgumentException: No such service ComponentInfo{<app package>AppInfoJobService}
at android.os.Parcel.readException(Parcel.java:2009)
at android.os.Parcel.readException(Parcel.java:1951)
at android.app.job.IJobScheduler$Stub$Proxy.enqueue(IJobScheduler.java:211)
at android.app.JobSchedulerImpl.enqueue(JobSchedulerImpl.java:53)
at android.support.v4.app.JobIntentService$JobWorkEnqueuer.enqueueWork(JobIntentService.java:342)
at android.support.v4.app.JobIntentService.enqueueWork(JobIntentService.java:522)
at android.support.v4.app.JobIntentService.enqueueWork(JobIntentService.java:500)
at <application package>AppInfoJobService.startWork(AppInfoJobService.java:254)
at <application package>MyApplication.onStartStopChanged(MusicApplication.java:694)
at <application package>AppStateMonitor.notifyStartStop(AppStateMonitor.java:150)
at <application package>AppStateMonitor.access[=10=]0(AppStateMonitor.java:14)
at <application package>AppStateMonitor$CreateDestroyRunnable.run(AppStateMonitor.java:71)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6545)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:857)
当应用程序处于后台或应用程序被终止并尝试重新启动服务时,您无法使用方法 startService 启动服务或 intentService。
据我所知,情况是(正如你所说的很少发生)当应用程序不在内存中时,应用程序试图以某种方式重新启动应用程序。
注意:由于我没有足够的声誉来发表评论并想帮助作者,因此开始一个单独的线程。
这实际上是具有 Android Oreo 的 LAVA 设备的问题,并且在其他设备上工作得很好。
我也在 LAVA Z60s 和 LAVA Z61 上观察到了这一点。
正在添加来自 crashlytics 的相关信息
我的情况是我没有在 AndroidManifest.xml 中创建服务,所以它没有找到该服务。 为此,请添加以下内容:
...
/activity>
<service
android:name=".YOUR_FOLDER.YOUR_SERVICE_FILENAME"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="false" />
<receiver
android:name=".YOUR_FOLDER.YOUR_RECEIVER_FILENAME"></receiver>
</application>
切换到新版本后问题终于解决了Android WorkManager