Starting with v1.9.0 there is a bunch of jsr305 classes inside com.google.ar.sceneform:core under the javax.annotation package.
I'm also using Realm which depends on com.google.code.findbugs:jsr305:3.0.2
Hence now when I try to build the app I get these dependency resolution errors from gradle:
java.lang.RuntimeException: Duplicate class javax.annotation.CheckForNull found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.CheckForSigned found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.CheckReturnValue found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.Detainted found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.MatchesPattern found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.MatchesPattern$Checker found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.Nonnegative found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.Nonnegative$Checker found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.Nonnull found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.Nonnull$Checker found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.Nullable found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.OverridingMethodsMustInvokeSuper found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.ParametersAreNonnullByDefault found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.ParametersAreNullableByDefault found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.PropertyKey found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.RegEx found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.RegEx$Checker found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.Signed found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.Syntax found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.Tainted found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.Untainted found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.WillClose found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.WillCloseWhenClosed found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.WillNotClose found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.concurrent.GuardedBy found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.concurrent.Immutable found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.concurrent.NotThreadSafe found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.concurrent.ThreadSafe found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.meta.Exclusive found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.meta.Exhaustive found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.meta.TypeQualifier found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.meta.TypeQualifierDefault found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.meta.TypeQualifierNickname found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.meta.TypeQualifierValidator found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.meta.When found in modules classes.jar (com.google.ar.sceneform:core:1.9.0) and jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Are there any nice gradle workarounds or dependency resolution strategies?
For anybody stuck with the same issue - this app-level gradle code worked for me:
android {
...
applicationVariants.all { variant ->
variant.getRuntimeConfiguration().exclude group: 'com.google.code.findbugs', module: 'jsr305'
}
}
I've got the same problem:
This issue is also related to https://github.com/google-ar/sceneform-android-sdk/issues/709
Same problem here. I am using sceneform-ux and core in a library and applying the following doesn't help.
libraryVariants.all { variant ->
variant.getRuntimeConfiguration().exclude group: 'com.google.code.findbugs', module: 'jsr305'
}
The only way for now is to return to version 1.8.0 and wait for upcoming release with the fix.
Most helpful comment
For anybody stuck with the same issue - this app-level gradle code worked for me: