Flutter项目运行报错:Kotlin Gradle版本不兼容及后续运行问题
解决Flutter Android构建的Kotlin版本冲突及后续构建问题
一、解决Kotlin Gradle插件版本冲突问题
你遇到的sign_in_with_apple依赖Kotlin版本过低的问题,是因为某个间接依赖(比如旧版flutterfire_ui)引入了该包,且指定的Kotlin Gradle插件版本1.3.50不满足Android Gradle插件7.3.1要求的1.5.20+。
解决方案:强制统一所有子项目的Kotlin版本
修改android/build.gradle文件,在subprojects块中添加强制版本的配置:
subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" project.evaluationDependsOn(':app') // 强制所有子项目使用根目录定义的Kotlin版本 afterEvaluate { configurations.all { resolutionStrategy { force "org.jetbrains.kotlin:kotlin-gradle-plugin:${rootProject.ext.kotlin_version}" } } } }
同时建议在buildscript中补充全局编译SDK版本,方便统一管理:
buildscript { ext.kotlin_version = '1.6.10' ext.compileSdkVersion = 33 // 添加此行 repositories { google() mavenCentral() } // 其余依赖配置保持不变 }
二、解决替换flutterfire_ui后的构建失败问题
替换废弃的flutterfire_ui为firebase_ui_firestore后出现的构建错误,多是缓存残留或依赖替换不彻底导致的。
解决方案:
彻底清理所有缓存
执行以下命令清理Flutter和Gradle缓存:flutter clean rm -rf android/.gradle rm -rf ~/.gradle/caches flutter pub get确保依赖替换完整
flutterfire_ui包含多个模块(如auth、firestore等),仅替换为firebase_ui_firestore可能无法满足原有功能需求,需根据你的实际使用情况补充对应依赖,示例:dependencies: # 移除旧的flutterfire_ui依赖 # flutterfire_ui: ^0.4.3+20 firebase_ui_firestore: ^1.3.0 # 你的目标依赖 firebase_ui_auth: ^1.4.0 # 如果之前用了登录相关功能,需添加 # 其余依赖保持不变切换设备时的缓存处理
切换Android设备前,先执行flutter clean,或在Android Studio中选择File > Invalidate Caches... > Invalidate and Restart,再重新执行flutter run,避免设备相关的缓存冲突。
完成以上配置后,重新执行flutter run即可正常构建。
内容的提问来源于stack exchange,提问作者Aimn Blbol
相关产品推荐
相关产品推荐

