skip to Main Content

When minified is enabled, there is a conflict between the obfuscated names of two different SDKs.

Duplicate class a.a, etc

I am trying to figure out if there is any way to solve this?

> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
   > Duplicate class a.a found in modules jetified-amazonpay-hardened-silentpay-sdk-1.3.0-runtime (in.juspay:amazonpay-hardened-silentpay-sdk:1.3.0) and jetified-diagnostics-1.0.20-runtime (com.android:diagnostics:1.0.20)
     Duplicate class b.a found in modules jetified-amazonpay-hardened-silentpay-sdk-1.3.0-runtime (in.juspay:amazonpay-hardened-silentpay-sdk:1.3.0) and jetified-diagnostics-1.0.20-runtime (com.android:diagnostics:1.0.20)
     Duplicate class b.b found in modules jetified-amazonpay-hardened-silentpay-sdk-1.3.0-runtime (in.juspay:amazonpay-hardened-silentpay-sdk:1.3.0) and jetified-diagnostics-1.0.20-runtime (com.android:diagnostics:1.0.20)
     Duplicate class b.c found in modules jetified-amazonpay-hardened-silentpay-sdk-1.3.0-runtime (in.juspay:amazonpay-hardened-silentpay-sdk:1.3.0) and jetified-diagnostics-1.0.20-runtime (com.android:diagnostics:1.0.20)
     Duplicate class c.a found in modules jetified-amazonpay-hardened-silentpay-sdk-1.3.0-runtime (in.juspay:amazonpay-hardened-silentpay-sdk:1.3.0) and jetified-diagnostics-1.0.20-runtime (com.android:diagnostics:1.0.20)

2

Answers


  1. What causes it is implentation of a dependency into build.gradle module file more than once. But i’ve witnessed this situation and discovered no duplicate library was implemented until i added this to gradle.properties file

    android.useAndroidX=true
    android.enableJetifier=true
    

    According to @Farmanbar

    Jetifier tool migrates support-library-dependent libraries to rely on the equivalent AndroidX packages instead. The tool lets you migrate an individual library directly, instead of using the Android gradle plugin bundled with Android Studio.

    And for more information take a look at Exclude transitive dependencies

    As an app grows in scope, it can contain a number of dependencies including direct dependencies and transitive dependencies (libraries which your app’s imported libraries depend on). To exclude transitive dependencies that you no longer need, you can use the exclude keyword

    If you have problems excluding classes, check this thread: How do I exclude all instances of a transitive dependency when using Gradle?

    Login or Signup to reply.
  2. Guess only one of these is required:

    // implementation 'in.juspay:amazonpay-silentpay-sdk:1.2.0'
    implementation 'in.juspay:amazonpay-hardened-silentpay-sdk:1.3.0'
    

    android.enableJetifier=false is rather the default value.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search