模块使用不兼容的 Kotlin 版本进行编译。其元数据的二进制版本为 1.5.1,但期望版本为 1.1.15。

329
Stripe中,我的客户希望获取电子邮件和持卡人姓名,但Stripe支付界面在com.stripe.android.view.CardMultilineWidget中没有提供该选项。我想尝试一下最新的Stripe版本。
我使用的是Stripe版本(14.1.1)。所以我将其更新到最新版本(16.8.0)。
构建过程中显示了一个错误,它不支持minSdkVersion 19。在manifest merger中需要21。所以我将minSdkVersion更新为21
我遇到了以下问题:
caches/transforms-2/files-2.1/4541b0189187e0017d23bbb0afebd16a/jetified-kotlin-stdlib-common-1.5.0.jar!/META-INF/kotlin-stdlib-common.kotlin_module: 该模块是使用不兼容的Kotlin版本编译的。其元数据的二进制版本为1.5.1,而期望版本为1.1.15。

我尝试更改Gradle版本,但仍然遇到相同的错误。我该如何解决不兼容的错误,并在Stripe中添加电子邮件和持卡人姓名?

1
关于 Kotlin 构建错误,这两个之前的回答是否有帮助?https://dev59.com/jFEG5IYBdhLWcg3wWbH5#67470309 https://dev59.com/b5Pfa4cB1Zd3GeqPGa_J#35170452 - Nolan H
2
在构建使用我的库的应用程序时,我遇到了这个问题。它似乎是由于 Kotlin Gradle 插件从 1.4.32 更新到 1.5.31 导致的。为了解决这个问题,我将 languageVersion 和 apiVersion 更改为“1.4”,并构建了一个新版本的库。虽然与此处描述的客户端问题没有直接关系,但对于库维护者可能会有所帮助。 - fejd
37个回答

9
在这种情况下,请仔细阅读build.gradle(:project)。我忽略了警告,所以才会出现这个问题。
最初我的build.gradle(:project)的设置是:
plugins {
id 'com.android.application' version '7.2.1' apply false
id 'com.android.library' version '7.2.1' apply false
id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
}

当我遇到这个错误时

模块是使用不兼容的 Kotlin 版本编译的。其元数据的二进制版本为 1.8.0,而期望版本为 1.6.0。

因此,我将 build.gradle (:project) 中的设置更改为以下内容:

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

希望它能解决你的问题。

6

前往文件build.gradle,更改kotlin的版本。 如果在我的flutter项目中,我打开了build.gradle并进行了更改

`ext.kotlin_version = '1.5.30'` 

to ext.kotlin_version = '1.6.0'

Here

buildscript {
ext.kotlin_version = '1.6.0'

repositories {
    google()
    jcenter()
}

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

然后保存并执行

flutter cleanflutter run 命令。

我这边正常运行了。


4

另一个解决方案是将 androidx.core:core-ktx 库降级到任何兼容的版本。这个版本适用于 kotlin_version = '1.3.31'

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.3.1'  // The only working for this version (sdk/gradle)
    implementation 'androidx.core:core-ktx:1.0.2' // The only working for this version (sdk/gradle)
    implementation 'androidx.constraintlayout:constraintlayout:1.1.2' // higher versions require min-sdk >= 26
    ...
}

Android SDK: compileSdkVersion 30minSdkVersion 19

Gradle构建工具:com.android.tools.build:gradle:3.3.1


4
只需进入文件 build.gradle(项目:yourProjectName)。 更改
plugins {
  ...

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

  ...
}

(1.5.x表示您的情况下的x版本号,例如1.5.1。)

翻译:

(1.5.x代表版本号为x,在您的情况下,例如1.5.1。)
plugins {
  ...

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

  ...
}

在我的情况下它有效...

3
打开 Build.gradle 文件(项目:NAME_PROJECT),并在插件中设置代码 id 'org.jetbrains.kotlin.android' version '1.8.0' apply false,将其清空。

3

对于 macOS,您可以

rm -r $HOME/.gradle/caches/

或者您可以使缓存无效

File >> Invalidate caches

2
使用Flutter修复方法如下:
  • 更新Android Studio包,特别是Kotlin插件。

  • Gradle - Plugin and versions获取最新的Kotlin插件版本号。目前为1.6.10。

  • 通过替换旧的Kotlin版本来更新<Your_project_name_folder>\android\build.gradle文件中的内容,使用上面网站得到的新版本号。

    ext.kotlin_version = '<The_new_version_Nbr>',例如我的情况下是 ext.kotlin_version = '1.6.10'

  • 重新启动Visual Studio Code。

完成了!

2
大部分答案都似乎围绕着使用 Gradle 的项目。我在 IntelliJ IDEA 中遇到了这个问题,之前它可以编译和运行 Maven 项目并且没有更改任何配置。我添加了一个新的异常类,然后就出现了这个问题。我尝试了无效化缓存和重启,但是没有解决这个问题。不过,禁用并重新启用 Kotlin 插件解决了这个问题。

2
Kotlin的配置真是个噩梦,我有两个项目,一个是100%的Java,另一个是用Kotlin写的,哇,差别真是巨大。(别提Flutter了,也是个类似的噩梦)。嗯,这方面真是太吵了。至少对我来说,以下步骤起到了作用:
1. 从IDE中运行建议的Kotlin迁移 2. 清除缓存
我还添加了kotlin-bom,像这样:
dependencies {
    ...
    implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    ...
}

在主要的build.gradle文件中:
buildscript {
    ext.kotlin_version = '1.7.20'
    
    dependencies {
        classpath 'com.android.tools.build:gradle:7.3.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

并且将目标更新为:
android {
    compileSdkVersion 34
    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 34
        ...
    }
}

1

添加

buildscript {
    ext {
      kotlinVersion = "1.6.0"
     ...
    }
  ...
}  

android/build.gradle

更多信息请查看这里


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