Skip to content

IncompatibleClassChangError thrown after upgrade from 2.21 to 2.22.  #1491

Closed

Description

Platform: Mac OSX 10.14.3
Compiler: Kotlinc-1.3.21 / Kapt
JVM: jdk1.8.0_162 (yeah yeah)
Builder: Bazel 0.22 (with a back-ported aar_import fix)

After upgrading a bazel-based build from 2.21 to dagger 2.22, the following started occurring. Dagger upstream deps are automatically handled by the maven integration, though the system uses version-pinning, so it's possible this is merely a dependency versioning problem. I'm auditing that now, but it seems odd that it would be so, insofar as it's throwing this issue around one class in dagger-2.22.jar artifact (@Component and @Component.Factory)

Error doesn't seem to happen with gradle, which lends a bit of support to it being a deps issue, as a few of these ICCE throws have been in the past.

Caused by: java.lang.IncompatibleClassChangeError: dagger.Component and dagger.Component$Factory disagree on InnerClasses attribute
	at java.base/java.lang.Class.getDeclaringClass0(Native Method)
	at java.base/java.lang.Class.isTopLevelClass(Unknown Source)
	at java.base/java.lang.Class.getSimpleBinaryName(Unknown Source)
	at java.base/java.lang.Class.getSimpleName(Unknown Source)
	at dagger.internal.codegen.ComponentCreatorAnnotation.<init>(ComponentCreatorAnnotation.java:53)
	at dagger.internal.codegen.ComponentCreatorAnnotation.<clinit>(ComponentCreatorAnnotation.java:38)
	at dagger.internal.codegen.ComponentProcessingStep.annotations(ComponentProcessingStep.java:93)
	at dagger.internal.codegen.DaggerStatisticsCollectingProcessingStep.annotations(DaggerStatisticsCollectingProcessingStep.java:44)
	at dagger.shaded.auto.common.BasicAnnotationProcessor.getSupportedAnnotationClasses(BasicAnnotationProcessor.java:146)
	at dagger.shaded.auto.common.BasicAnnotationProcessor.getSupportedAnnotationTypes(BasicAnnotationProcessor.java:158)
	at dagger.shaded.auto.common.BasicAnnotationProcessor.getSupportedAnnotationTypes(BasicAnnotationProcessor.java:103)
	at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.getSupportedAnnotationTypes(annotationProcessing.kt:132)

Note: This may well not be dagger's problem, but I'm posting it here since the one variable I change is dagger version number, and in case others run into this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions