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

Posted

技术标签:

【中文标题】“模块是用不兼容的 Kotlin 版本编译的。其元数据的二进制版本是 1.5.1,预期版本是 1.1.16”【英文标题】:"Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.5.1, expected version is 1.1.16" 【发布时间】:2021-07-30 12:49:41 【问题描述】:

我是 Kotlin 应用程序开发的初学者。尝试构建应用时出现以下错误-

e: 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

是关于更新模块吗?那怎么更新呢?

【问题讨论】:

你能显示你的应用程序和项目 build.gradle 在我的情况下,Jetpack DataStore 库出现问题。我删除它并重建。问题已解决,但不知道为什么会这样。!!! meta.***.com/questions/285551/… 【参考方案1】:

对于仍在寻找答案的人,这是解决此问题的有效解决方案。在你的项目级别打开build.gradle文件,增加 ext.kotlin_version 从您拥有的任何当前版本1.5.0 到最新的稳定版本1.6.0。谢谢

您可以从这里获取最新版本:

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

【讨论】:

它确实有效,但请告诉我它是如何运作的。 在我看来,有时,android Studio 会停止支持 Kotlin 旧版本,尤其是当您的 android studio 是最新版本时。这只是我的想法,我也不知道确切的原因。但这个解决方案每次都肯定有效。 在我的情况下,当我在 Android Studio 中更新一些插件时出现了这个问题。 是的,在gradle-wraper-properties 文件中将gradle-6.7.1 的版本更改为gradle-6.9 并更改ext.kotlin-version = '1.4.32' 解决问题。 flutter@2.5.2 项目中设置为1.5.31 为我修复了它。【参考方案2】:

从 Kotlin 1.4.30 更新到 1.5.0 时发生在我身上。似乎是某种Gradle 缓存问题。我可以通过将 Gradle6.7.1 更新到 6.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

【讨论】:

不要这样做。只需按照 Ali Raza 的回答即可。 @KishanSolanki 你能解释一下原因吗? Ali Raza 的回答对我没有帮助! 阿里的回答对我不起作用,错误保持不变【参考方案3】:

我将 kotlin 版本更新到最新版本,这对我有帮助。

这里

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

【讨论】:

【参考方案4】:

在我的情况下,当我将 androidx.core:core-ktx:1.3.1 升级到 androidx.core:core-ktx:1.6.0 时出现问题

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

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

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

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

【讨论】:

这是解决问题的最佳答案。【参考方案5】:

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

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

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

打开 IntelliJ >> 构建 >> 重建项目。

之后我再次运行该应用程序,它对我有用。

【讨论】:

【参考方案6】:

转到项目 build.gradle 并更新“ext.kotlin_version = 1.5.0”

【讨论】:

【参考方案7】:

我必须更新 Kotlin Gradle 插件以匹配 Kotlin 标准库。在project/build.gradle.

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"
    ...

参考:Exception Error blog post

【讨论】:

【参考方案8】:

这发生在我今天,当我使用最新的 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'
    ...

【讨论】:

【参考方案9】:

最近我的 Jenkins 构建失败并出现类似的错误消息。并尝试在下面缓解该问题:

可能的原因:

    Gradle 设置选项中的离线工作模式为 ON,编译时某些依赖项失败 更新的 Android Studio 不再支持旧的 Kotlin 版本。 (可能性很小) Gradle 分发版本与 Gradle 插件 (com.android.tools.build:gradle) 不兼容 Gradle 缓存问题 从错误声明看来,模块是使用不兼容的 Kotlin 版本编译的。例如,您在项目中添加了一些 sdk 依赖项,这些依赖项是使用与您的应用使用的不同(不兼容)的 kotlin 版本编译的。

可能的解决方案:

    应在 Gradle 设置选项中关闭离线工作模式,

    重启 Kotlin 插件并重启 Android Studio

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

    验证 Gradle 分发版本是否兼容 Android 级插件 here

    根据 gradle-wrapper.properties 中的最新版本(或更高版本)更改“distributionUrl”网址命令行(更好的方式):`./gradlew wrapper --gradle-版本 XYZ'。

    手动:更改 Wrapper 的 gradle-wrapper.properties 文件中的 distributionUrl 属性。

    从here找到将在 gradle-wrapper.properties 中使用的最新版本的 Gradle

    升级 Kotlin 版本:将 ext.kotlin.version 从您拥有的任何版本升级到“1.4.32”或任何可用的最新版本here

请注意可能有很多可能的原因以及解决方案。在我的情况下,解决方案#5 和 6 的组合效果很好。

【讨论】:

【参考方案10】:

对我来说,我必须将 Android Studio 更新为 4.2.2。将gradle 更新为7.0。以及执行kotlin 迁移(可能与它没有任何关系)。最后将我的ext.kotlin_version 更新为1.5.20。毕竟我使缓存无效并重新启动Android studio

【讨论】:

【参考方案11】:

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

ext.kotlin_version = "1.4.32"

确保gradle-wrapper.properties 具有可兼容的 带有您的 kotlin 版本的分发 url

distributionUrl=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 版本并获得了正确的版本我的项目 gradle 配置

您可以从 github 发布部分查看kotlinx-coroutines-android 版本

https://github.com/Kotlin/kotlinx.coroutines/releases

您也可以从 developer.android.com 查看core-ktx 版本

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

【讨论】:

【参考方案12】:

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

ext.kotlinVersion = '1.5.0'

【讨论】:

【参考方案13】:

推迟处理这个问题将近一年,找到后解决方案很容易实施。

我必须在“存储库”部分的 build.gradle 文件中将已弃用的 jcenter() 替换为 mavenCentral()。

【讨论】:

【参考方案14】:

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

转到 Intellij 并禁用 Kotlin 插件。然后重新编译一切。

【讨论】:

对我来说,这使 AndroidStudio 崩溃了,它不会再启动了。我不得不手动修复 disabled_plugins.txt 以使其再次工作。【参考方案15】:

转到应用级 build.gradle 文件并检查行implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" 并查看建议的 kotlin 版本在类级 build.gradle 文件中更改它并将ext.kotlin_version = "x.x.xx" 更改为建议的版本。

【讨论】:

【参考方案16】:

我刚刚将所有内容更新到最新版本。以及最新的android studio自己提到的。

例如

    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

在 gradle-wrapper.properties 中

【讨论】:

【参考方案17】:

对我来说更新 kotlin 插件,kotlin 版本和分发 url 有效

kotlin_version = '1.4.32'

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

【讨论】:

【参考方案18】:

再次创建新项目对我有帮助:| 如果您需要修复另一个项目,您可以尝试将 android/build.gradleandroid/app/build.gradle 从新的 Flutter 项目模板复制到另一个项目。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于“模块是用不兼容的 Kotlin 版本编译的。其元数据的二进制版本是 1.5.1,预期版本是 1.1.16”的主要内容,如果未能解决你的问题,请参考以下文章