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:
-
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
-
Uninstall and install
Android Studio
-
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
Add this to android/app/build.gradle
}
In your
android/app/build.gradle
file set kotlin-stdlib to use the same verionfor example:
For me, it was a combination of the
react-native-iap
and thereact-native-onesignal
packages that was causing the issue.Upgrading
react-native-onesignal
didn’t work, so I upgradedreact-native-iap
as far as I could go without breaking changes, and for me, that wasv7.5.6
.After upgrading
iap
to7.5.6
, I also had to add this to my../android/app/build.gradle
file for it to compile: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.
This is caused by the Kotlin plugin update. You can fix it easily by using configure below:
You can refer this one: Kotlin Document