2017-07-28 3 views
1

J'ai utilisé le dagger pendant un moment et maintenant je suis confronté à un problème lié à la génération de la classe DaggerAppComponent. Il fonctionne comme prévu lors de l'exécution du projet à partir d'Android Studio, mais chaque fois que j'exécute la tâche assembleDebug sur la ligne de commande du répertoire racine, Gradle ne peut pas générer le projet entier car les classes Dagger ne sont pas générées.Impossible de construire le projet Android gradle à partir de la ligne de commande avec dagger 2 dependency

Il me manque une tâche pour exécuter complètement le processeur d'annotation de poignard?

Dépendances:

final DAGGER_VERSION = '2.0.1' 

compile "com.google.dagger:dagger:$DAGGER_VERSION" 
annotationProcessor "com.google.dagger:dagger-compiler:$DAGGER_VERSION" 
provided 'org.glassfish:javax.annotation:10.0-b28' 

Ceci est l'erreur finale:

import com.company.injection.DaggerAppComponent; 
         ^
    symbol: class DaggerAppComponent 
    location: package com.company.injection 
:mobile:compileDebugJavaWithJavac FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':mobile:compileDebugJavaWithJavac'. 
> java.lang.NoSuchMethodError: com.google.common.collect.Multimaps.filterKeys(Lcom/google/common/collect/SetMultimap;Lcom/google/common/base/Predicate;)Lcom/google/co 
mmon/collect/SetMultimap; 

Juste pour vous assurer, le graphique est ok et il fonctionne correctement, le problème vient se produire si J'essaye de construire le projet par la ligne de commande avec assembleDebug.

Répondre

0

Après avoir passé un peu de temps à ce sujet, j'ai corrigé le problème en ajoutant la dépendance à la goyave comme annotationProcessor juste au-dessus de le dagger-compiler.

final DAGGER_VERSION = '2.0.1' 

compile "com.google.dagger:dagger:$DAGGER_VERSION" 
annotationProcessor 'com.google.guava:guava:19.0' 
annotationProcessor "com.google.dagger:dagger-compiler:$DAGGER_VERSION" 
provided 'org.glassfish:javax.annotation:10.0-b28' 
0

J'ai eu la même configuration avec 'com.google.guava:guava:19.0' mais j'avais l'erreur suivante:

Error:Execution failed for task ':mobile:compileDebugJavaWithJavac'. 
> java.lang.NoSuchMethodError: com.google.common.collect.Multimaps.filterKeys(Lcom/google/common/collect/SetMultimap;Lcom/google/common/base/Predicate;)Lcom/google/common/collect/SetMultimap; 

J'ai essayé de mettre à jour la version de goyave au courant au moment 'com.google.guava:guava:22.0' mais l'erreur a continué. J'ai changé pour 'com.google.guava:guava:21.0' et cela a bien fonctionné. Peut être une incompatibilité avec d'autres versions.