Ho testato Dagger 2 e tutto ha funzionato, fino a quando non ho eseguito un po 'di refactoring. Ora gradle sta lanciando uno IllegalArgumentException
, e non riesco a capire cosa ho cambiato che sta causando l'errore. Non ho fatto alcuna modifica al file Gradle, e questo sembra essere il peso della traccia dello stack:Dagger 2 Build IllegalArgumentException compileDebugJavaWithJavac
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':mobile:compileDebugJavaWithJavac'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
...
Caused by: java.lang.IllegalArgumentException
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:108)
at dagger.internal.codegen.writer.ClassName.peerNamed(ClassName.java:130)
at dagger.internal.codegen.SourceFiles.membersInjectorNameForMembersInjectionBinding(SourceFiles.java:266)
at dagger.internal.codegen.InjectBindingRegistry.registerBinding(InjectBindingRegistry.java:194)
at dagger.internal.codegen.InjectBindingRegistry.registerBinding(InjectBindingRegistry.java:171)
at dagger.internal.codegen.InjectProcessingStep.process(InjectProcessingStep.java:129)
at dagger.shaded.auto.common.BasicAnnotationProcessor.process(BasicAnnotationProcessor.java:228)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
at com.sun.tools.javac.main.Main.compile(Main.java:523)
... 89 more
Nessun file vengono generati da Dagger così, ed erano in precedenza. Ho provato tutti i metodi per risolvere questo problema che posso trovare, principalmente per quanto riguarda il fissaggio dei file gradle o la cancellazione della cartella di build, ma finora nulla ha funzionato.
Aggiornamento rapido (poiché ho notato alcuni voti positivi); Non ho mai scoperto cosa ho fatto di sbagliato, ho finito per tornare a una vecchia build. Dopo il ripristino, ho rifatto il refactoring e ha funzionato bene. Devo aver fatto qualcosa di diverso quando ho inizialmente rifatto il codice, ma non ho idea di cosa fosse.
Se qualcuno ha un'idea di cosa potrebbe aver causato questo, sono sicuro che aiuterà tutti coloro che hanno, o lo faranno in futuro, incontrare questo problema.
+1 per la vostra soluzione alternativa, era esattamente il mio problema anche con FirebaseMessagingService dopo che ho provato ad iniettare dipendenze in esso. Forse c'è qualche problema con l'offuscamento? – gnuf
Come vorrei che questo potesse essere spiegato dai ragazzi di Firebase e Dagger –
Accade anche quando estendi "FirebaseInstanceIdService". – LEO