Flutter打包APK时Kotlin版本不兼容报错求助
解决Flutter打包时Kotlin版本不兼容警告
核心问题
你遇到的警告是Android Gradle Plugin(AGP)与Kotlin版本不匹配导致的:当前使用的AGP 7.3.0仅支持最高Kotlin 1.7.x版本,但你配置了Kotlin 1.9.10,同时第三方依赖(如dynamic_color、map_launcher等)也使用了更高版本的Kotlin编译,导致编译器预期的元数据版本(1.6.0)与实际依赖的元数据版本(1.8.0/1.9.0)不兼容。
解决方案
1. 匹配AGP与Kotlin版本
AGP和Kotlin有严格的兼容性对应关系,你需要二选一来调整版本:
- 若要保留Kotlin 1.9.10:将AGP升级到8.0.0及以上版本(推荐8.0.2)
- 若不想升级AGP:将Kotlin版本降级到1.7.20(适配AGP 7.3.0)
修改根目录build.gradle中的对应配置:
buildscript { // 方案1:保留Kotlin 1.9.10,升级AGP到8.0.2 ext.kotlin_version = '1.9.10' dependencies { classpath 'com.android.tools.build:gradle:8.0.2' classpath 'com.google.gms:google-services:4.3.15' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } // 或者方案2:降级Kotlin到1.7.20,适配AGP7.3.0 // buildscript { // ext.kotlin_version = '1.7.20' // dependencies { // classpath 'com.android.tools.build:gradle:7.3.0' // classpath 'com.google.gms:google-services:4.3.15' // classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // } // }
2. 强制所有子项目统一Kotlin版本
部分Flutter插件可能自带不同的Kotlin版本配置,在根目录build.gradle中添加如下代码,强制所有子项目使用你指定的Kotlin版本:
subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' apiVersion = '1.9' // 对应你使用的Kotlin版本,降级则改为'1.7' languageVersion = '1.9' } } } } }
3. 清理缓存并重新构建
执行以下命令清理缓存,避免旧版本依赖残留:
flutter clean # Windows用户手动删除C:\Users\你的用户名\.gradle\caches文件夹 # Mac/Linux用户执行 rm -rf ~/.gradle/caches flutter build apk
补充说明
虽然当前应用能正常运行,但这些警告说明依赖环境存在版本不一致的隐患,后续升级Flutter、依赖库或AGP时可能触发编译错误,建议尽快修复版本匹配问题。
内容的提问来源于stack exchange,提问作者pdev
相关产品推荐
相关产品推荐

