农民 发表于 2024-12-14 11:25:06

Flutter编译Module was compiled with an incompatible version of Kotlin

https://i-blog.csdnimg.cn/img_convert/0d6f8eabd25593d362311b9e2e8ef951.jpeg


编译报错如下

e: C:/Users/YUAN/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.9.20/e58b4816ac517e9cc5df1db051120c63d4cde669/kotlin-stdlib-1.9
.20.jar!/META-INF/kotlin-stdlib-jdk8.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.6.0.
e: C:/Users/YUAN/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.9.20/e58b4816ac517e9cc5df1db051120c63d4cde669/kotlin-stdlib-1.9
.20.jar!/META-INF/kotlin-stdlib-jdk7.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.6.0.
https://i-blog.csdnimg.cn/img_convert/08ac8f35a411fb32dee6b986108e0c02.png
办理方法

这个错误阐明你的项目中的一些 Kotlin 依靠项(如 wakelock 和 androidx.lifecycle)是使用较新的 Kotlin 编译器(1.8.0 或 1.9.0)编译的,而你的项目设置使用的是较旧的 Kotlin 编译器版本(1.6.0)。Kotlin 的二进制兼容性在较大的版本差别下可能会导致此类问题。
修复方案


[*]升级项目的 Kotlin 版本
升级项目的 Kotlin 版本以匹配依靠库的编译版本。


[*]打开 android/build.gradle,找到 ext.kotlin_version,将其修改为与依靠项兼容的版本,比方 1.9.20:ext.kotlin_version = '1.9.20'

[*]确保 gradle-wrapper.properties 中的 Gradle 版本与 Kotlin 版本兼容。比方,使用 Gradle 7.5 或更高版本(保举 8.x)。在 android/gradle/wrapper/gradle-wrapper.properties 文件中修改:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip

运行以下命令清算并重新编译:
flutter clean
flutter pub get
flutter build apk

[*]降级依靠项到与当前 Kotlin 版本兼容的版本
如果你不盼望升级 Kotlin 版本,可以实验降级这些依靠项到与 Kotlin 1.6.0 兼容的版本。


[*]在 pubspec.yaml 文件中,指定兼容的版本。比方:wakelock: 0.5.3 # 选择不依赖较新 Kotlin 版本的版本

运行以下命令更新依靠:
flutter pub upgrade

[*]强制全部 Kotlin 依靠使用同一版本
为了避免库依靠版本混乱,可以在 android/build.gradle 中添加以下代码,强制全部 Kotlin 库使用相同的版本:
configurations.all {
    resolutionStrategy {
      force 'org.jetbrains.kotlin:kotlin-stdlib:1.6.21' // 替换为你的目标 Kotlin 版本
    }
}

[*]清算缓存和中心文件
清除全部缓存和构建文件后重新编译:
flutter clean
rm -rf ~/.gradle/caches
flutter build apk

[*]检查 Gradle 插件版本和 Flutter SDK
某些版本的 Flutter SDK 默认使用较旧的 Gradle 和 Kotlin 插件版本。确保 Flutter SDK 是最新的,并更新 Android Gradle 插件:
flutter upgrade
在 android/build.gradle 中,确保 Gradle 插件版本恰当 Kotlin 版本。比方:
classpath 'com.android.tools.build:gradle:8.0.2'
   结束语
Flutter是一个由Google开辟的开源UI工具包,它可以让您在差别平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Flutter编译Module was compiled with an incompatible version of Kotlin