Flutter安卓端Firebase Crashlytics失效且Release打包报错
问题根因
该报错是google-services Gradle插件未在Release构建阶段生成对应的配置文件,导致Crashlytics的混淆映射上传任务找不到依赖的资源文件,按以下步骤排查即可:
排查步骤
1. 检查google-services.json配置
- 确认你最新同步包名后的
google-services.json文件放置在安卓项目的app/目录下,不要放在根目录或其他子目录 - 打开文件核对
package_name字段,和你android/app/build.gradle中配置的release包applicationId完全一致,注意大小写、后缀不要出现拼写错误
2. 核对Gradle插件配置
- 项目根目录
android/build.gradle中确保已添加正确的插件依赖:
dependencies { // 其他已有依赖 classpath 'com.google.gms:google-services:4.3.15' // 可替换为最新稳定版 classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9' }
android/app/build.gradle文件底部确保插件应用顺序正确,必须先应用google-services插件,再应用Crashlytics插件,顺序错误会导致配置生成失败:
// 放在文件最末尾,不要放在依赖声明之前 apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.firebase.crashlytics'
- 如果你配置了构建维度、release包applicationId后缀等自定义配置,要确保google-services.json中有对应包名的配置项,否则需要手动指定对应构建变体的google-services文件路径
3. 清理缓存重新构建
- 执行Flutter清理命令:
flutter clean - 进入安卓目录执行构建清理:
- Mac/Linux系统:
cd android && ./gradlew clean - Windows系统:
cd android && gradlew.bat clean
- Mac/Linux系统:
- 重新执行release打包操作验证
临时规避方案
如果暂时不需要上传混淆映射文件到Crashlytics,可以直接关闭对应任务的校验,即可正常打包:
在android/app/build.gradle的release构建配置中添加如下配置:
android { // 其他已有配置 buildTypes { release { // 你已有的minifyEnabled、proguardFiles等配置 firebaseCrashlytics { mappingFileUploadEnabled false } } } }
内容的提问来源于stack exchange,提问作者KonTash
相关产品推荐
相关产品推荐

