2017-10-03 5 views
0

J'essaie d'intégrer Dagger 2 à utiliser dans les tests unitaires. Malheureusement, chaque fois que je lance mon test, je reçois java.lang.NoClassDefFoundError: javax/inject/Provider.Utilisez fournir une dépendance progressive dans Android Test d'unité

J'ai la dépendance javax ajouté dans Gradle comme ceci:

depdencencies { 
    ... 
    provided 'javax.annotation:jsr250-api:1.0' 
} 

Ce que j'ai essayé: Changer provided-compile. Ajout à la fois compile et testCompile avec cette dépendance. J'ai également essayé testProvided mais il n'y a pas une telle chose donc cela n'a pas fonctionné non plus.

Apparemment, le problème est que l'utilisation de cette dépendance est disponible uniquement à la compilation. Malheureusement, rien d'autre n'a fonctionné, donc je suis ouvert à toutes les suggestions. Si plus d'informations sont nécessaires, veuillez demander. Merci!

Répondre

0

-je utiliser dans dagger2 2.2.3 pour Android Studio tests unitaires avec app/build.gradle

.... 

apt 'com.google.dagger:dagger-compiler:2.11' 
compile 'com.google.dagger:dagger:2.11' 
provided 'javax.annotation:jsr250-api:1.0' 
provided 'org.glassfish:javax.annotation:10.0-b28' 


.... 
+0

merci. Bien que pouvez-vous fournir des informations pourquoi cela ne fonctionne pas dans mon cas? Aussi pourquoi ai-je besoin d'utiliser les deux dépendances 'fournies 'pour les annotations javax? – definera

+0

Je pense que c'est juste assez fourni 'org.glassfish: javax.annotation: 10.0-b28' Désolé je ne peux pas l'expliquer. J'ai étudié les tutoriels Dagger et utilisé le buil.gradle recommandé – eurosecom