Tried 2.14 (upgrade from 2.13), but it's breaking my build, Android Studio 3.0.1, Java 8. The gRPC-related Dagger part of my build (it's gRPC server code) seems to have particular trouble. gRPC-java 1.8.0. gRPC classes and Dagger classes are not generated. I have not isolated the issue to a small sample project at this point, but a possible cause I see is below, maybe that gives a pointer. I don't have any explicit dependency on Google Auto libs in that part of the build.
java.lang.NoClassDefFoundError: com/google/auto/common/MoreTypes
Can you give more of a stack trace (if javac gives you one)? All of our processors should be shading auto common - https://github.com/google/dagger/blob/master/BUILD#L67,L88,L97 so this shouldn't be happening (but there could always be a bug!)
Looks like com.google.auto:auto-common is not there in POM:
http://search.maven.org/#artifactdetails%7Ccom.google.dagger%7Cdagger-compiler%7C2.14%7Cjar
That's because it's shaded.
$ unzip -l dagger-compiler-2.14.jar | grep MoreTypes
14: 17045 12-05-2017 17:51 dagger/shaded/auto/common/MoreTypes.class
15: 1322 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$WildcardTypeVisitor.class
16: 1326 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$TypeVariableVisitor.class
17: 1644 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$TypeEquivalence.class
18: 4671 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$ReferencedTypes.class
19: 1333 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$PrimitiveTypeVisitor.class
20: 1273 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$NullTypeVisitor.class
21: 1261 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$NoTypeVisitor.class
22: 3133 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$IsTypeVisitor.class
23: 5032 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$IsTypeOf.class
24: 6695 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$HashVisitor.class
25: 1344 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$ExecutableTypeVisitor.class
26: 1289 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$ErrorTypeVisitor.class
27: 919 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$EqualVisitorParam.class
28: 8871 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$EqualVisitor.class
29: 1322 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$DeclaredTypeVisitor.class
30: 1886 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$ComparedElements.class
31: 1585 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$CastingTypeVisitor.class
32: 2869 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$AsElementVisitor.class
33: 1294 12-05-2017 17:51
dagger/shaded/auto/common/MoreTypes$ArrayTypeVisitor.class
34: 963 12-05-2017 17:51 dagger/shaded/auto/common/MoreTypes$2.class
35: 2142 12-05-2017 17:51 dagger/shaded/auto/common/MoreTypes$1.class
On Tue, Dec 19, 2017 at 2:59 PM Sergey notifications@github.com wrote:
Looks like com.google.auto:auto-common is not there in POM:
http://search.maven.org/#artifactdetails%7Ccom.google.dagger%7Cdagger-compiler%7C2.14%7Cjar
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/dagger/issues/994#issuecomment-352869641, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAEEEXxO1Y10i525S85bGXz3tKsui1Uiks5tCBWFgaJpZM4RHaQW
.
I did a recursive javap -c -p over the three processor jars and I'm not seeing anything here that refers to auto common (as @JakeWharton mentioned, it's shaded). Perhaps one of our dependencies does use it though, maybe AutoAnnotation (though that should resolve transitively if it does)?
Ohhhh, we may need auto common shaded in the SPI artifact.
Relevant stacktrace:
Caused by: java.lang.NoClassDefFoundError: com/google/auto/common/MoreTypes
at dagger.model.Key$Builder.type(Key.java:111)
at dagger.model.Key.builder(Key.java:102)
at dagger.internal.codegen.KeyFactory.forInjectConstructorWithResolvedType(KeyFactory.java:253)
at dagger.internal.codegen.InjectBindingRegistryImpl.tryRegisterMembersInjectedType(InjectBindingRegistryImpl.java:266)
at dagger.internal.codegen.InjectBindingRegistryImpl.tryRegisterMembersInjectedType(InjectBindingRegistryImpl.java:257)
at dagger.internal.codegen.InjectProcessingStep$1.visitVariableAsField(InjectProcessingStep.java:69)
at dagger.internal.codegen.InjectProcessingStep$1.visitVariableAsField(InjectProcessingStep.java:59)
at com.sun.tools.javac.code.Symbol$VarSymbol.accept(Symbol.java:1237)
at dagger.internal.codegen.InjectProcessingStep.process(InjectProcessingStep.java:58)
at dagger.shaded.auto.common.BasicAnnotationProcessor.process(BasicAnnotationProcessor.java:330)
at dagger.shaded.auto.common.BasicAnnotationProcessor.process(BasicAnnotationProcessor.java:181)
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)
Ok that's what I suspected. Thanks for finding this, I'll make a fix soon
Will you report back if 2.14.1 doesn't fix this?
2.14.1 fixed it for me - thanks for the quick fix!
Most helpful comment
2.14.1 fixed it for me - thanks for the quick fix!