Flutter项目构建APK时出现Kotlin版本不匹配错误
嗨,我之前也碰到过一模一样的问题!别着急,咱们一步步来解决这个Kotlin版本冲突的问题。
从错误信息来看,你的项目当前配置的Kotlin版本是1.6.0,但项目依赖的一些库(比如core-1.10.1、kotlin-stdlib-1.8.22)是用Kotlin 1.8.0编译的,二进制元数据版本不兼容,导致构建失败。下面是几个亲测有效的解决步骤:
更新项目根目录的Kotlin版本配置
打开Flutter项目中android/build.gradle文件(注意是android根目录下的那个,不是app模块里的),找到ext.kotlin_version这一行,把版本号改成和依赖库一致的1.8.22:buildscript { ext.kotlin_version = '1.8.22' // 将原来的1.6.0替换成这个 repositories { google() mavenCentral() } // 其他原有内容保持不变 }配置app模块的Kotlin编译选项
打开android/app/build.gradle文件,在android代码块中添加Kotlin版本相关的编译配置,确保编译时使用统一的版本:android { // 其他原有配置 kotlinOptions { jvmTarget = '1.8' apiVersion = '1.8' languageVersion = '1.8' } }清理Gradle缓存,避免旧依赖干扰
有时候缓存里的旧依赖会残留导致冲突,执行以下命令彻底清理:flutter clean cd android ./gradlew cleanBuildCache cd .. flutter pub get强制统一所有子项目的Kotlin版本(如果前面步骤无效)
如果还是有冲突,可能是某个Flutter插件偷偷依赖了旧版本Kotlin,可以在android/build.gradle的buildscript块之后添加以下配置,强制所有子项目使用指定的Kotlin版本:subprojects { project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'org.jetbrains.kotlin') { details.useVersion '1.8.22' } } } }
一般来说,更新项目的Kotlin版本到和依赖库一致的版本就能解决问题,Flutter现在对Kotlin 1.8+的支持已经很稳定了,不用太担心兼容性问题。
备注:内容来源于stack exchange,提问作者Cameron Nicholson

