“模块是用一个不兼容的 Kotlin 版本编译的。它的元数据的二进制版本是1.5.1,预期版本是1.1.16”

我是 Kotlin 应用程序开发的初学者,当我尝试开发这个应用程序时,出现了以下错误:

C:/Users/Lenovo/.gradle/caches/transforms-2/files-2.1/32f0bb3e96b47cf79ece6482359b6ad2/jetified-kotlin-stdlib-jdk7-1.5.0.jar!/META-INF/kotlin-stdlib-jdk7.kotlin_module: 模块使用不兼容的 Kotlin 版本编译。它的元数据的二进制版本是1.5.1,预期版本是1.1.16

screenshot

是关于更新模块的吗? 那么如何更新呢?

216822 次浏览

我从 Kotlin 的1.4.30 升级到 1.5.0 的时候也遇到过这种情况。似乎是 Gradle缓存问题。通过更新 Gradle6.7.16.9(或任何其他版本) 可以解决这个问题。

跳转到 gradle-wrapper.properties,这行代码然后将

distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip

修改为

distributionUrl=https://services.gradle.org/distributions/gradle-6.9-all.zip

对于那些仍在寻找这个问题答案的人来说,这里是解决这个问题的工作方案。在项目级别打开的 build.gradle文件中,将 从 1.5.0到最新的稳定版 1.6.0(当时最新的版本)。谢谢

你可以从这里得到最新版本:

Https://kotlinlang.org/docs/releases.html#release-details

最近,我的 Jenkins 版本出现了类似的错误消息,我试图通过以下方式来缓解这个问题:

可能的原因:

  1. 离线工作模式是 ON 在 Gradle 设置选项失败的一些依赖性,同时编译
  2. 升级后的 Android Studio 不再支持旧版本的 Kotlin
  3. 不兼容的 Gradle 发行版 wrt Gradle 插件(com.android.tools.build: Gradle)
  4. 分级缓存问题
  5. 从错误声明来看,这个模块似乎是用一个不兼容的 Kotlin 版本编译的。例如,您已经在您的项目中添加了一些 sdk 依赖关系,这些依赖关系是用与您的应用程序使用的不同(不兼容) kotlin 版本编译的。

可能的解决办法:

  1. 离线工作模式应关闭在分级设置选项,

  2. 重新启动 Kotlin 插件并重新启动 Android Studio

  3. 从项目中删除/升级新添加的 sdk 依赖项

  4. 验证 Gradle 发行版是否与 Android 等级插件兼容 在这里

  5. 根据 gradle-wrapper. properties 中的最新版本(或更高版本)更改“ distribution tionUrl”url
    命令行(better way) : ‘ ./gradlew wrapper —— gradle-version X.Y.Z’。

    Manual: 更改 Wrapper 的 gradle-Wrapper. properties 文件中的 distribution tionUrl 属性。

    找到 Gradle 的最新版本,它将用于 Gradle-wrapper. properties

  6. 升级 Kotlin 版本: ext.Kotlin.version 从任何版本升级到 ‘1.4.32’ 或者任何可用的最新版本 这里

请注意,可能有许多可能的原因,以便解决。在我的例子中,解决方案 # 5和6的组合工作得很好。

我更新了 kotlin 的最新版本,它帮助了我。

给你

enter image description here

修复了 Android Studio 的黄色提示符 从 implementation "androidx.core:core-ktx:+"到这个 implementation "androidx.core:core-ktx:1.5.0"

enter image description here

对我来说,我必须更新 Android Studio4.2.2。更新 gradle7.0。以及执行 kotlin迁移(可能与此无关)。最后将我的 ext.kotlin _ 版本更新为 1.5.20。在所有这些之后,我使缓存失效并重新启动 Android studio

在我的情况下,问题发生时,我升级 androidx.core:core-ktx:1.3.1androidx.core:core-ktx:1.6.0

在这个库的发布说明中提到

注意: Core 和 Core-ktx Version 1.5.0 及以上版本只针对 Android 11 SDK 进行编译。 * *

Https://developer.android.com/jetpack/androidx/releases/core#core_and_core-ktx_version_150_2

解决方案: 将你的库降级到 1.5并同步。如果是这种情况,那么错误就会消失。

我刚刚把所有的东西都更新到了最新的版本,而且是 Android 工作室自己提到的最新版本。

例如:

    ext.kotlin_version = '1.5.20'


dependencies {
classpath 'com.android.tools.build:gradle:4.2.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.4.0-alpha04"
}

还有

distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip

在梯级包装。属性

对我来说,更新 kotlin 插件,kotlin 版本和发布网址工作 Kotlin Plugin

kotlin_version = '1.4.32'

还有

distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-all.zip

我在 IntelliJ IDEA Version: Ultimate 2019.3中遇到了同样的问题

当我多次更改 jar 版本并单击调试按钮以运行应用程序时发生问题。

当我使用以下步骤时,问题已经解决:

打开 IntelliJ > > Build > > Rebuild Project。

之后,我再次运行应用程序,它为我工作。

我不得不更新 Kotlin Gradle 插件来匹配 Kotlin 标准库。

buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:{kotlin version}"
}
}

我还删除了对标准库的依赖的标注,因为这个标注现在已经根据我的依赖关系嵌入到 Gradle 中了,尽管这个标注与标准库没有太大的直接关系。 在 {project}/{app module}/build.gradle中删除这一行:

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:{kotlin version}"
...
}

参考资料: 例外错误博客文章

转到 project build.gradle 并更新“ ext.kotlin _ version = 1.5.0”

今天,当我使用最新的 Android Studio 将一个新项目添加到一个现有的大项目中时,发生了这种情况,但是我找不到上面提到的 ext.kotlin_version来修复它。无论如何,在比较 build.gradle 文件和一个新的独立项目的文件之后,我发现在这里修改 1.6.0:

dependencies {
implementation 'androidx.core:core-ktx:1.6.0'
...
}

1.3.2解决了这个问题:

dependencies {


implementation 'androidx.core:core-ktx:1.3.2'
...
}

如果以后有人遇到这个问题,请检查以下 dependenciesclasspathversions

ext.kotlin_version = "1.4.32"

确保 gradle-wrapper.properties具有可比较的 使用您的 kotlin 版本发布 URL

分布/Url = https://services.gradle.org/distributions/gradle-6.9-bin.zip

应用程序级 build.gradle检查

implementation 'androidx.core:core-ktx:1.5.0'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.3'

注意: 检查这些依赖关系可能会导致问题,在我的案例中,coroutines-android使用的是1.6.0-RC2,这是协同程序的最新版本,然后我检查了 github 发行版,得到了适合我的项目级配置的正确版本

您可以从 github 版本部分检查 kotlinx-coroutines-android版本

Https://github.com/kotlin/kotlinx.coroutines/releases

你亦可透过 developer.android.com 查阅 core-ktx版本

Https://developer.android.com/jetpack/androidx/releases/core

我昨天遇到了这个问题。解决方案是将 build.Gradle 中的 kotlin 版本更改为1.5.0,并将项目结构中的 Gradle 版本更改为6.9。

ext.kotlinVersion = '1.5.0'

enter image description here

创建新的项目再次帮助了我: | 如果您需要修复另一个项目,您可以尝试复制 Android/build.gradleAndroid/app/build.gradle从新的颤振项目模板到其他项目。

在推迟处理这个问题将近一年之后,发现这个解决方案非常容易实现。

我不得不在“存储库”部分的 build.gradle 文件中用 mavenCentral ()替换弃用的 jcenter ()。

经过4个小时的不同版本的 Kotlin 测试,这个解决方案解决了我的生活:

去 Intellij 关闭 Kotlin 插件,然后重新编译。

最后,可行的解决方案是我们需要从您的项目 build.gradle 文件升级您的 kotlin 版本。

未清除的 Gradle 缓存也可能是一个问题。我遇到过同样的问题,通过删除根文件夹中的 .gradle/caches目录解决了这个问题。

步骤:

  • 删除位置 [RootFolder]/.gradle/caches中的 caches目录
  • 使缓存无效并重新启动
  • 重建项目

参考: https://stackoverflow.com/a/23029580/10506244

在 build.gradle 文件中,将 ext.kotlin _ version 增加到1.6.0

ext.kotlin_version = '1.6.0'

出现这种情况的实际原因是与 kotlin 编译器版本和 gradle 插件版本不兼容

我在 Chipmunk 开发了一个新的 Android 项目,我发现 ext块下的 kotlin _ version 变量不存在,而 build.gradle将对 kotlin 版本进行硬编码

所以像这样改变你的 build.gradle(全局)

buildscript {
ext {
compose_version = '1.2.0-beta02'
kotlin_version = '1.6.21'// This might be missing, you can add it
}
repositories {
google()
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:7.2.0"
    





// Do not hardcode this version, instead make it rely on the global variable you declared on top


//No
//classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.20"
//Yes
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "com.google.dagger:hilt-android-gradle-plugin:2.38.1"
}
}


task clean(type: Delete) {
delete rootProject.buildDir
}




你只需要重建你的项目:

  1. 打开 IntelliJ IDE
  2. 建造
  3. 重建计划

首先,我们需要知道冲突从何而来。

二进制版本1.5.1不是所使用的 kotlin-stdlib 版本,可以通过检查依赖关系树来了解它。在我的例子中,我使用的 Core: core-ktx: 1.6.0依赖于 org.jetbrains.kotlin: kotlin-stdlib: 1.5.10

预期的版本取决于 build.gradle项目文件中使用的 kotlin-gradle-plugin版本。

所以在我的案例中,androidx.core:core-ktxkotlin-gradle-plugin版本之间存在不兼容性。为了解决冲突,我有两个选择。要么升级 KGP,要么降级 ktx。

在 build.gradle (项目)中

ext.kotlin_version = '1.3.40'     // not compatible with ktx:1.6.0
//  ext.kotlin_version = '1.4.31' // upgrading KGP fixes the issue
dependencies {
classpath 'com.android.tools.build:gradle:3.5.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}

在 build.gradle (模块)中

//  implementation "androidx.core:core-ktx:1.2.0" // downgrading ktx fixes the issue
implementation "androidx.core:core-ktx:1.6.0"     // not compatible with kotlin_version = '1.3.40'

在梯级包装。属性

distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip

这里的规则是选择一个 ktx 版本的发布日期接近 KGP 的发布日期。两者的链接都可以在下面找到。

Https://developer.android.com/jetpack/androidx/releases/core

Https://developer.android.com/studio/releases

Https://developer.android.com/studio/releases/past-releases

Https://developer.android.com/studio/releases/gradle-plugin

为什么简单地升级 Kotlin 版本就可以工作: 至少你的一个依赖是针对 Kotlin 版本编译的,这个版本不能向后兼容你正在编译应用或 lib 的 Kotlin 版本。

或者,您可以找出它是哪个依赖项并降低它的等级。然而,这可能是有限的,所以如果可以的话,请升级 Kotlin 版本。

记住这种痛苦,如果你曾经写过一个 Kotlin 库供其他人使用,考虑在你编译的 Kotlin 版本中保守一些,并在发布说明中列出那个版本。

在我的情况下,我没有一个 buildScript块或 ext.kotlin_version在我的 ProjectRoot/build.gradle。相反,有一个 plugins块描述我的 kotlin 版本。

plugins {
id 'com.android.application' version '7.2.2' apply false
id 'com.android.library' version '7.2.2' apply false
id 'org.jetbrains.kotlin.android' version '1.5.30' apply false
}

org.jetbrains.kotlin.android改成 1.7.10,比如:

plugins {
id 'com.android.application' version '7.2.2' apply false
id 'com.android.library' version '7.2.2' apply false
id 'org.jetbrains.kotlin.android' version '1.7.10' apply false
}

这终于起作用了,希望能帮到别人。

我刚在 android/build.gradle 文件中添加了一个新版本。事实上,如果你得到 kotlin 版本错误,它会带你到 kotlin 网站,你可以从那里复制版本,放入 android/build.gradle 文件。但有时您可能需要从

 dependencies {
classpath 'com.android.tools.build:gradle:7.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}

如果你悬停在它上面,它会告诉你正确的一个,并把它放在那里 更多请点击这里 < a href = “ https://youtu.be/WTEPNOQdpB0”rel = “ nofollow norefrer”> https://youtu.be/wtepnoqdpb0

enter image description here

对于那些仍在寻找这个问题答案的人来说,这里是解决这个问题的工作方案。在项目级的 open build.gradle 文件中,将 ext.kotlin _ version 从当前的1.3.61版本增加到1.4.0版本(当时的最新版本)。谢谢

在我的案例中,flutter 项目和 Android 工作室 IDE,kotlin 版本和 gradle 版本之前已经更新过。

file > Invaladate caches的工作非常出色。

有时冲突来自于保存的 android 工作室项目设置。尝试同步你的项目与 Gradle 文件 机器人工作室的快捷方式。

发件人: File-> Sync Project with Gradle Files

这将重新构建并下载所有必要的文件。

用于反应本机以下解决方案工作

// Top-level build file where you can add configuration options common to all sub-projects/modules.


buildscript {
// ...
}




allprojects {
repositories {
+       exclusiveContent {
+           // We get React Native's Android binaries exclusively through npm,
+           // from a local Maven repo inside node_modules/react-native/.
+           // (The use of exclusiveContent prevents looking elsewhere like Maven Central
+           // and potentially getting a wrong version.)
+           filter {
+               includeGroup "com.facebook.react"
+           }
+           forRepository {
+               maven {
+                   // NOTE: if you are in a monorepo, you may have "$rootDir/../../../node_modules/react-native/android"
+                   url "$rootDir/../node_modules/react-native/android"
+               }
+           }
+       }
// ...
}
}

将 gradle 插件升级到最新版本。如果有可用的更新,Android Studio v3.0 + 将提示更新 gradle。

对于 Flutter 项目,在 Android Studio 中打开 Android 应用程序,并按照上面提到的那样升级 gradle。

该问题发生在2022年11月4日 RN,请参阅以下链接解决方案。 https://github.com/facebook/react-native/issues/35210

在几周后运行命令 react-native run-android以运行我的项目时,我遇到了这个错误。在运行命令之后,我注意到 react-native-0.71.0-rc.0-debug.aar正在被下载。在互联网上挖掘之后,我偶然发现了这个关于 github 和 此评论问题,它陈述了问题的原因。正如评论所说:

  • 典型的反应-本地发布不发布到 MavenCentral。
  • 这个 RC 被发布到 MavenCentral,并且有一个比本地更高的版本
  • 典型的反应-本地 build.gradle 因此从 Maven 中心提取新的(不需要的) RC 版本

这个问题 就是问题的解决方案,也就是说,react-native的人已经准备好了修补程序,你可以更新当前版本的 react-native来修补这个问题。我使用的是 react-native版本的 0.68.2,我更新到补丁版本的 0.68.5作为 问题说明,它修复了问题。

我已经尝试了所有列出的答案,没有一个与最新的反应本地(0.70.6)。

我的解决方案是使用安卓工作室运行应用程序的 AVD 或设备,首先,并确保它安装所有必需的 sdks 或库。我很惊讶,因为我通过之前的指示引导 RN。

对我来说,在设备或 AVD 上初始运行需要一些时间。 在这样做之后,运行 CLI 的应用程序对我来说很有用。