web-dev-qa-db-ja.com

Android Java.lang.IllegalArgumentException:No such service ComponentInfo JobScheduler

単純なJobSchedulerジョブを作成して、それがどのように機能するかを確認しようとしました。しかし、実行時にこの例外が発生し続けます。ガイドを段階的にたどっていったので、それを理解できません。

これは私の電話です:

        ComponentName componentName = new ComponentName(getApplicationContext(), TestService.class);
    JobInfo jobInfo = new JobInfo.Builder(1, componentName).setPeriodic(300000)
            .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY).build();

    JobScheduler tm =
            (JobScheduler) getApplicationContext().getSystemService(Context.JOB_SCHEDULER_SERVICE);
    tm.schedule(jobInfo);

TestServiceはextends JobService以外には何もしません。

20
Roee N

権限を追加する必要がありますAndroid.permission.BIND_JOB_SERVICEをAndroidManifest.xmlに

...
<service Android:name=".TestService"
     Android:permission="Android.permission.BIND_JOB_SERVICE"
     Android:exported="true"/>
...
</application>
42
Cody

クリーンなプロジェクトを試してください。それは私のケースでした。

2
V. Gerasimenko

私の問題は、サービスが静的内部クラスとして定義されていることでした。サービスクラスをそれ自体のJavaファイルに移動すると、問題は自動的に解決しました

0
TheIT