其元数据的二进制版本为1.7.1,期望版本为1.5.1。

11

C:/Users/khare/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.7.0/51736992f422993a1e741051bdf3c12801bc1ca1/kotlin-stdlib-common-1.7.0.jar!/META-INF/kotlin-stdlib-common.kotlin_module: 该模块使用了不兼容版本的Kotlin,二进制元数据版本为1.7.1,预期版本为1.5.1。

怎么办?如何修复?


我尝试了这些解决方案,但都没有起作用,你找到解决办法了吗? - Saman Sattari
1
这种情况已在此答案中完全解释 - https://dev59.com/21EG5IYBdhLWcg3wVqr9#74425347 - aaronvargas
8个回答

18
在 build.gradle(项目)的(依赖项)中,将 1.5.x(x)转换为我的情况下的(20)。
 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20"

1.7.10

 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10"

这是我截图中的亮点。

gradle version change


如果您正在使用Compose,则还需要调整Compose版本。通常情况下,使用Kotlin的1.7.10版本将使用Compose的1.3.1版本。其余内容可以使用此链接进行检查。链接 - Hamid Javed
在我试了两个小时都解决不了的情况下,你帮了我一个大忙。谢谢! - undefined

9

请前往build.gradle(Project:yourProjectName)文件。

更改

plugins {
  ...

  id 'org.jetbrains.kotlin.android' version '1.5.x' apply false

  ...
}

[1.5.x 表示你的情况下版本号为 x,例如 1.5.1]

plugins { 
  ...

  id 'org.jetbrains.kotlin.android' version '1.7.10' apply false

  ...
}

这在我的情况下有效。


2

1
在build.gradle(project)中,将$kotlin_version转换为实际版本(ext.kotlin_version = '1.7.10')中提到的版本。

1
这是让我疲惫了一个星期的解决方案。 我遇到了以下错误: 模块使用与 Kotlin 不兼容的版本进行编译。其元数据的二进制版本为 1.8.0,预期版本为 1.5.1。

我做了所有必要的事情,但结果令人失望,包括: 更新 Kotlin 降级 Kotlin ... 对我来说,问题通过更新 Gradle 得到了解决。


0

修改 build.gradle(项目)

 buildscript {
ext.kotlin_version = '1.7.10'
repositories {
    google()
    mavenCentral()
    maven {
         url 'https://jitpack.io'
    }
}
dependencies {
    classpath 'com.google.gms:google-services:4.3.3'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
   }
}
plugins {
    id 'com.android.application' version '7.2.2' apply false
    id 'com.android.library' version '7.2.2' apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}

0

解决方案

该模块使用了与 Kotlin 不兼容的版本进行编译:

其二进制(模块)的元数据版本为 1.7.1(Kotlin 语言版本),而预期版本为 1.5.1(编译器版本为 1.5.1)。

这表明模块的语言版本设置为 1.7.1,而使用的 Kotlin 编译器版本为 1.5.1。

如果整个项目都设置为版本 1.7.1,那么这种差异可能是由于子模块中编译器版本的错误识别引起的。在单独编译子模块时,它们可能默认使用主 Kotlin 语言版本作为相应的编译器版本。

可能的解决方案:

  1. 在子模块中覆盖 kotlin.version,将其设置为高于 1.5 的版本,最好在 1.6 到 1.8 之间,根据我的经验。
  2. 配置编译器以使用特定的编译器版本。

Maven 示例:

<build>
    <plugins>
        <!-- Kotlin compiler plugin -->
        <plugin>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-maven-plugin</artifactId>
            <version>1.7.1</version> <!-- Desired Kotlin version -->

            <executions>
                <execution>
                    <id>compile</id>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
                <execution>
                    <id>test-compile</id>
                    <goals>
                        <goal>test-compile</goal>
                    </goals>
                </execution>
            </executions>
            
            <configuration>
                <jvmTarget>1.8</jvmTarget> <!-- Target JVM version -->
            </configuration>
        </plugin>

        <!-- Other plugins as needed... -->
    </plugins>
</build>


希望这能帮到你!

0

当下面两个版本不同时,这种情况也曾发生在我身上。

id 'org.jetbrains.kotlin.android' version '1.7.10' apply false
id 'org.jetbrains.kotlin.jvm' version '1.7.10' apply false

将它们都升级到1.7.10后,它就可以工作了。

还要记得清除缓存并重新启动Android Studio。


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