“模块是用不兼容的 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
缓存问题。我可以通过将 Gradle
从 6.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】:如果以后有人遇到这个问题,请检查以下versions
的dependencies
和classpath
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.gradle 和 android/app/build.gradle 从新的 Flutter 项目模板复制到另一个项目。
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于“模块是用不兼容的 Kotlin 版本编译的。其元数据的二进制版本是 1.5.1,预期版本是 1.1.16”的主要内容,如果未能解决你的问题,请参考以下文章