Flutter应用Gradle编译报错:Kotlin版本元数据不兼容
Flutter Gradle Kotlin版本不兼容问题解决方法
问题分析
从报错信息看,你的项目配置了Kotlin 1.8.0,但Gradle缓存中出现了Kotlin 1.9.0的依赖包,且编译器期望的元数据版本是1.7.1。核心原因是间接依赖(比如Firebase相关库)自动拉取了更高版本的Kotlin标准库,导致与你指定的Kotlin Gradle插件版本不兼容。
解决步骤
1. 强制统一所有Kotlin依赖版本
在android/build.gradle的allprojects块中添加版本强制策略,确保所有子项目都使用你指定的Kotlin 1.8.0版本:
allprojects { repositories { google() mavenCentral() } // 新增:强制所有Kotlin相关依赖使用指定版本 configurations.all { resolutionStrategy { force "org.jetbrains.kotlin:kotlin-stdlib:1.8.0" force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0" force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0" force "org.jetbrains.kotlin:kotlin-stdlib-common:1.8.0" } } }
2. 更新Google Services插件版本
当前使用的com.google.gms:google-services:4.3.15可能与Kotlin 1.8.0存在兼容性问题,建议更新到适配Gradle 7.4.2的版本(如4.4.0):
修改android/build.gradle中buildscript的dependencies:
classpath 'com.google.gms:google-services:4.4.0'
3. 彻底清理缓存与构建文件
执行以下命令清理项目缓存,避免旧缓存干扰:
# 清理Flutter项目缓存 flutter clean # 进入Android目录清理Gradle构建缓存 cd android && ./gradlew cleanBuildCache # 返回根目录重新获取依赖 cd .. && flutter pub get
如果仍有问题,可以手动删除本地Gradle缓存目录(路径:/home/thmburso/.gradle/caches)。
4. 调整Kotlin版本适配Gradle(可选)
如果上述步骤无效,可尝试将Kotlin版本调整为与Gradle 7.4.2更匹配的1.7.20:
- 修改
android/build.gradle中的ext.kotlin_version = '1.7.20' - 同步后重复步骤3清理缓存。
为什么之前的操作无效?
你之前仅手动指定了Kotlin插件版本,但Gradle会根据依赖树自动选择最高版本的依赖包,Firebase BOM或其他第三方库可能间接引入了Kotlin 1.9.0,导致版本冲突。通过强制统一版本,可以覆盖这些间接依赖的版本选择。
内容的提问来源于stack exchange,提问作者Guilherme Tiburcio
相关产品推荐
相关产品推荐

