Arcore-android-sdk: ARCore v1.9.0 added javax.annotation (jsr305-3.0.2) to classpath resulting in dependency resolution errors

Created on 9 May 2019  路  4Comments  路  Source: google-ar/arcore-android-sdk

SPECIFIC ISSUE ENCOUNTERED

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)

VERSIONS USED

  • Android Studio: 3.5 Beta 1
  • ARCore SDK for Android: 1.9.0

ADDITIONAL COMMENTS

Are there any nice gradle workarounds or dependency resolution strategies?

bug fixed in upcoming release

Most helpful comment

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'
    }
}

All 4 comments

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.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

zansbang picture zansbang  路  39Comments

rohitagarwal3011 picture rohitagarwal3011  路  17Comments

Xanvial picture Xanvial  路  37Comments

achuvm picture achuvm  路  26Comments

boehm-e picture boehm-e  路  23Comments