【问题标题】:"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"“模块是用不兼容的 Kotlin 版本编译的。其元数据的二进制版本是 1.5.1,预期版本是 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 库出现问题。我删除它并重建。问题已解决,但不知道为什么会这样。!!!

标签: android android-studio kotlin


【解决方案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 构建失败并出现类似的错误消息。并尝试在下面缓解该问题:

            可能的原因:

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

            可能的解决方案:

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

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

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

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

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

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

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

            6. 升级 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
                            猜你喜欢
                            • 2022-11-08
                            • 2022-08-14
                            • 2022-08-23
                            • 2021-10-22
                            • 2022-11-05
                            • 2023-02-15
                            • 2022-08-13
                            • 2022-10-30
                            • 2023-01-30
                            相关资源
                            最近更新 更多