skip to Main Content

I am getting the next error appearing on running npx react-native run-android. It came out of nowhere – no changes have been committed.

Execution failed for task ':app:checkDebugDuplicateClasses'.
A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable

Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.7.20 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20)

Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk7-1.7.20 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20)
     
Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations$ReflectSdkVersion found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk7-1.7.20 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20)
     
Duplicate class kotlin.internal.jdk8.JDK8PlatformImplementations found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.7.20 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20)
     
Duplicate class kotlin.internal.jdk8.JDK8PlatformImplementations$ReflectSdkVersion found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.7.20 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20)

What I tried:

  1. Follow again the installation steps on official react native documentation page: https://reactnative.dev/docs/environment-setup

     brew install node
     brew install watchman
     brew tap homebrew/cask-versions
     brew install --cask zulu11
    
  2. Uninstall and install Android Studio

  3. Set kotlinVersion = "1.8.0" in android/build.gradle:

     buildToolsVersion = "32.0.0"
     minSdkVersion = 21
     compileSdkVersion = 33
     targetSdkVersion = 33
     // here
     kotlinVersion = "1.8.0"
    

It looks like if I get rid of "react-native-inappbrowser-reborn": "^3.7.0" library the error is gone and the app launches successfully. But what if I need react-native-inappbrowser-reborn in my project?

Thank you mates in advance!

4

Answers


  1. Add this to android/app/build.gradle

    configurations.all {
    resolutionStrategy {
        eachDependency {
            if ((requested.group == "org.jetbrains.kotlin") && (requested.name.startsWith("kotlin-stdlib"))) {
                useVersion("1.6.10")
            }
        }
    }
    

    }

    Login or Signup to reply.
  2. In your android/app/build.gradle file set kotlin-stdlib to use the same verion

    for example:

    configurations.all {
        resolutionStrategy {
            eachDependency {
                if ((requested.group == "org.jetbrains.kotlin") && (requested.name.startsWith("kotlin-stdlib"))) {
                    useVersion("1.7.20")
                }
            }
        }
    }
    
    Login or Signup to reply.
  3. For me, it was a combination of the react-native-iap and the react-native-onesignal packages that was causing the issue.

    Upgrading react-native-onesignal didn’t work, so I upgraded react-native-iap as far as I could go without breaking changes, and for me, that was v7.5.6.

    After upgrading iap to 7.5.6, I also had to add this to my ../android/app/build.gradle file for it to compile:

    defaultConfig {
        ...
        missingDimensionStrategy 'store', 'play'
    }
    

    Edit: I think what’s happening is that one of your packages has a loose dependency, which caused an unexpected update. So each case could be different.

    Login or Signup to reply.
  4. This is caused by the Kotlin plugin update. You can fix it easily by using configure below:

    dependencies {
        implementation fileTree(dir: "libs", include: ["*.jar"])
        //noinspection GradleDynamicVersion
        implementation "com.facebook.react:react-native:+"  // From node_modules
        implementation 'com.android.support:multidex:2.0.1'
        implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
    
        // Add this line here
        implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0')
    
        //...omit some code
    }
    

    You can refer this one: Kotlin Document

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