Flutter修改targetSdkVersion为31后遇Firebase依赖解析错误求助
问题排查与修复步骤
1. 关闭Android Studio离线模式
- 打开Android Studio,点击顶部菜单栏
File→Settings(Windows/Linux)或Android Studio→Settings(Mac) - 找到
Build, Execution, Deployment→Build Tools→Gradle - 取消勾选
Offline work,点击OK保存 - 执行
flutter clean后重新运行项目
2. 修复Firebase依赖冲突
你的app/build.gradle中同时存在固定版本的firebase-core和Firebase BOM,且版本完全不兼容,这是核心问题:
- 删除固定版本的
implementation 'com.google.firebase:firebase-core:11.0.4' - 保留Firebase BOM,但要和
firebase_messaging版本匹配:- 若保留
firebase_messaging^7.0.3,将BOM版本改为20.0.0(与该插件版本适配) - 若想适配targetSdk31,建议把
pubspec.yaml中firebase_messaging升级到^14.0.0+,再将BOM版本改为31.0.2
- 若保留
修改后的app/build.gradle dependencies示例:
dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" testImplementation 'junit:junit:4.12' implementation 'com.google.firebase:firebase-analytics' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'com.android.support:multidex:1.0.3' // 只保留适配的BOM implementation platform('com.google.firebase:firebase-bom:20.0.0') }
3. 更新Gradle配置以支持targetSdk31
旧版本的Gradle插件、Kotlin版本和google-services插件不支持targetSdk31,需要更新:
修改android/build.gradle的buildscript部分:
buildscript { ext.kotlin_version = '1.6.21' // 升级到兼容版本 repositories { google() mavenCentral() // 移除已废弃的jcenter() } dependencies { classpath 'com.android.tools.build:gradle:7.0.4' // 升级支持targetSdk31的Gradle插件 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.3.15' // 升级google-services插件 } }
- 修改完成后点击Android Studio右上角的
Sync Project with Gradle Files按钮同步配置
4. 彻底清理缓存并重构
执行以下命令清理所有缓存后重新构建:
flutter clean rm -rf ~/.gradle/caches # Linux/Mac环境执行 # Windows环境直接删除C:\Users\<你的用户名>\.gradle\caches文件夹 flutter pub get flutter run
内容的提问来源于stack exchange,提问作者YourDeveloper
相关产品推荐
相关产品推荐

