web-dev-qa-db-fra.com

Android Java.lang.IllegalArgumentException: Aucun service de ce type ComponentInfo JobScheduler

J'ai essayé de créer un travail JobScheduler simple juste pour voir comment cela fonctionne. mais je continue d'obtenir cette exception lors de l'exécution, je ne peux pas le comprendre car j'ai suivi les guides étape par étape.

Voici mon appel:

        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 ne fait rien d'autre que des extensions JobService.

20
Roee N

Vous devez ajouter l'autorisation Android.permission.BIND_JOB_SERVICE dans votre AndroidManifest.xml

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

Essayez un projet propre. C'était mon cas.

2
V. Gerasimenko

Mon problème était que mon service était défini comme une classe interne statique. Le problème s'est résolu une fois que j'ai déplacé la classe de service dans son propre fichier Java

0
TheIT