Im utilisant dagger 2 depuis un certain temps, mais aujourd'hui, essayer de compiler a obtenu cette erreur:
Erreur: (13, 31) erreur: impossible de trouver la classe de symboles Dagger_GlobalComponent
Erreur: (38, 21) erreur: impossible de trouver la variable de symbole Dagger_GlobalComponent
Voici donc le code:
public class MyAppApplication extends Application {
private static GlobalComponent component;
@Override
public void onCreate() {
super.onCreate();
component = Dagger_GlobalComponent.builder()
.busModule(new BusModule())
.syncModule(new SyncModule())
.serviceModule(new ServiceModule())
.contextModule(new ContextModule(this))
.persistenceModule(new PersistenceModule(this))
.build();
}}
Et les dépendances gradle:
...
compile 'com.google.dagger:dagger:2.0-SNAPSHOT'
apt 'com.google.dagger:dagger-compiler:2.0-SNAPSHOT'
provided 'org.glassfish:javax.annotation:10.0-b28'
...
Des solutions? Déjà essayé de: Nettoyer, Reconstruire, Changer les versions de dépendance, supprimer également le cache Gradle et réinstaller Android Studio.
Si cela aide également à obtenir la même erreur avec ces exemples de projets:
J'essayais de suivre le didacticiel Dagger2 sur tutsplus ici et j'ai rencontré le même problème lorsque j'essayais d'utiliser la syntaxe de soulignement (Dagger_ClassnameComponent).
Comme d'autres l'ont déclaré, les nouvelles API Dagger n'utilisent pas cette syntaxe de soulignement, mais utilisent simplement la syntaxe DaggerClassnameComponent. Cependant, lors de la tentative d'utilisation de la nouvelle syntaxe dans mon application simple, la classe DaggerClassnameComponent est introuvable. Je pense qu'il devrait se trouver dans le dossier app/build/generated/source/apt/debug/packagename/component.
Au début, je n'avais aucun fichier généré dans le dossier mentionné ci-dessus. Cependant, ma solution était de nettoyer et de construire le projet, et ensuite je pouvais utiliser la classe Component comme prévu.
Dagger 2 a maintenant été publié, vous devrez donc modifier vos dépendances Gradle:
compile 'com.google.dagger:dagger:2.0'
provided 'com.google.dagger:dagger-compiler:2.0'
provided 'org.glassfish:javax.annotation:10.0-b28'
On dirait qu'ils ont supprimé le trait de soulignement du contenu généré. Voir La classe générée par Dagger2 est soudainement absente de Android Studio .