Android Studio 重复的类 kotlin。

15

在jetified-kotlin-stdlib-1.8.0(org.jetbrains.kotlin:kotlin-stdlib:1.8.0)和jetified-kotlin-stdlib-jdk7-1.3.31(org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.31)模块中发现重复的类kotlin.internal.jdk7.JDK7PlatformImplementations。

在jetified-kotlin-stdlib-1.8.0(org.jetbrains.kotlin:kotlin-stdlib:1.8.0)和jetified-kotlin-stdlib-jdk7-1.3.31(org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.31)模块中发现重复的类kotlin.jdk7.AutoCloseableKt。

**./gradlew clean **

build.gradle文件:



buildscript {
    ext {
        buildToolsVersion = "30.0.0"
        minSdkVersion = 23
        compileSdkVersion = 33
        targetSdkVersion = 30
        googlePlayServicesAuthVersion = "16.0.1"
        kotlinVersion = "1.8.0"
    }
    
    firebase: [
        bom           : "26.0.0"
    ]
    
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
    dependencies {

        classpath "com.android.tools.build:gradle:4.2.0" 
        classpath "com.google.gms:google-services:4.3.4"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"

    }
}
def REACT_NATIVE_VERSION = new File(['node', '--print',"JSON.parse(require('fs').readFileSync(require.resolve('react-native/package.json'), 'utf-8')).version"].execute(null, rootDir).text.trim())
allprojects {
    repositories {
        configurations.all {
            resolutionStrategy {

                force "com.facebook.react:react-native:" + REACT_NATIVE_VERSION
            }
        }
        mavenLocal()
        maven {

            url("$rootDir/../node_modules/react-native/android")
        }
        maven {

            url("$rootDir/../node_modules/jsc-android/dist")
        }
        maven { url 'https://maven.google.com' }
        google()
        jcenter()
        maven { url 'https://www.jitpack.io' }
    }
}

你能分享一下你的 build.gradle 文件吗? - YaMiN
1
问题中的“Yes” @YaMiN - Yusuf Jalboush
你是否使用了react-native-inappbrowser?我在这里描述了问题:https://github.com/proyecto26/react-native-inappbrowser/issues/398 - Igor VANIAN
6个回答

27

我的应用程序也遇到了同样的问题。由于在模块jetified-kotlin-stdlib-1.8.0jetified-kotlin-stdlib-jdk8-1.6.10中发现了重复的类,因此无法构建。

借助Igor VANIAN分享的链接:https://kotlinlang.org/docs/whatsnew18.html#usage-of-the-latest-kotlin-stdlib-version-in-transitive-dependencies,我添加了:

dependencies {
    ...

    implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
}

我对我的android/app/build.gradle进行了修改,现在Android已经成功编译。


6
挽救了我的生命。我因为这个突然出现的错误而陷入困境,尽管我在项目中没有做任何更改。Kotlin 的开发人员,你们真的不酷! - moyo
这对我来说也适用,当我将CameraX元素添加到我的项目中时。非常感谢你。 - Luft Schlafer
这对我来说也适用,当我将CameraX元素添加到我的项目中时。非常感谢你。 - undefined
感谢你所付出的努力。 - undefined

7

感谢大家,我通过两个步骤解决了这个问题

在 android/build.gradle 中更新以下内容:

kotlinVersion = "1.8.0"

在 android/app/build.gradle 的 dependencies 中添加以下内容:

implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))


在我的情况下,通过将 Kotlin 版本更新为1.8.0,无需添加 kotlin-bom 依赖项即可运行。 - Zainal Fahrudin
@ZainalFahrudin 你如何更新 Kotlin 版本? - Matthieu
如果您没有在 android/app/build.gradle 中使用变量,则无需更改 android/build.gradle。否则,您应该编写 implementation(platform("org.jetbrains.kotlin:kotlin-bom:$kotlinVersion")),就像您复制的 narasimha 的答案 一样(而不是接受他的答案)。 - Matthieu

5

我在React Native的Android端遇到了同样的问题。我将Kotlin升级到1.8.0版本,重新构建了应用程序,问题得到了解决。也许可以尝试升级Kotlin版本。

在android/build.gradle中更新以下内容:

kotlinVersion = "1.8.0"

并将此添加到依赖项中

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"

谢谢。现在它可以工作了,我可以睡觉了。 - Ashish Mehra

3
我从昨天开始就遇到了同样的问题。我发现这背后的原因可能是 Kotlin 1.8.0 中的 artifact merge。这里有一个 issue 讨论了这个破坏性变化。
所以像 @Narasimha 所说的设置 kotlinVersion = "1.8.0" 可以解决问题。但我仍然不知道哪个依赖项在一夜之间发生了变化,导致 kotlin-stdlib:1.8.0 出现在构建日志中。

1
是的,完全同意。应用程序早上运行良好,我进行了提交检出到不同的分支并尝试运行它,然后错误开始弹出。 - Ashish Mehra

2
这可能是因为您在使用不同版本的Kotlin依赖项时造成的。
请检查所有的Kotlin依赖项。在我的情况下,问题出在这个core-ktx上。
implementation "androidx.core:core-ktx:+"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

更新至此已解决的问题

implementation "androidx.core:core-ktx:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

这里的kotlin_version = '1.7.0'可以改成你所需的版本号。希望这能帮助其他人。


0
今天我遇到了同样的问题,但我用了不同的方法解决了它,如果有人需要的话: 当我将Kotlin升级到1.8版本后,这个问题就出现了,所以我不得不将我的Hilt版本更改为2.44。现在一切都正常运行。

你的回答可以通过提供更多支持信息来改进。请[编辑]以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接