从Fabric迁移Firebase Crashlytics后设置请求失败,崩溃报告不显示
从Fabric迁移Firebase Crashlytics后无崩溃报告的排查方案
我之前帮朋友排查过类似的迁移问题,结合你提供的日志和配置信息,给你几个针对性的排查方向:
1. 优先解决Settings请求失败的核心问题
日志里的firebase_crashlytics_enabled: false是从Firebase服务器返回的,说明你的应用没有从服务器获取到正确的启用配置,哪怕本地调用setCrashlyticsCollectionEnabled(true)也会被服务器配置覆盖。建议:
- 用更详细的日志排查请求失败原因:执行
adb logcat -s FirebaseCrashlytics,OkHttp,查看是否有HTTP错误码(比如403权限错误、404资源不存在) - 检查应用签名一致性:迁移后需要把Fabric时期使用的签名证书(SHA1/SHA256)添加到Firebase项目的应用设置中,确保当前构建应用的签名和Firebase后台配置完全匹配
2. 验证Gradle配置是否彻底替换Fabric相关内容
很多迁移问题都出在旧Fabric配置没清理干净,确保:
- 项目根
build.gradle中替换插件依赖:
buildscript { dependencies { // 移除Fabric插件,替换为Firebase Crashlytics插件 classpath 'com.google.firebase:firebase-crashlytics-gradle:2.4.1' } }
- App模块
build.gradle中应用新插件并移除旧配置:
plugins { id 'com.google.firebase.crashlytics' id 'com.google.gms.google-services' // 确保存在该插件 } dependencies { implementation 'com.google.firebase:firebase-crashlytics:17.2.1' // 移除所有Fabric相关依赖,比如io.fabric.sdk.android:fabric }
3. 清理缓存并重新构建
旧的Fabric缓存可能干扰Firebase配置加载:
- 执行
./gradlew clean清除Gradle缓存 - 卸载设备上的应用,手动清除应用存储后重新安装
- 重启测试设备,避免本地缓存残留
4. 确认Firebase控制台的迁移状态
进入Firebase控制台对应项目的Crashlytics页面:
- 检查是否显示“已启用”状态,有没有未完成的迁移提示(比如关联Fabric组织、上传dSYM文件)
- 确认应用包名和Firebase后台配置的包名完全一致(注意大小写和拼写)
5. 移除Fabric遗留初始化代码
确保代码中完全移除Fabric的初始化逻辑,比如:
// 移除这行旧代码 Fabric.with(this, new Crashlytics());
Firebase Crashlytics会自动初始化,不需要显式调用初始化方法(确保FirebaseApp已正常初始化即可)
我身边有不少开发者迁移后成功看到崩溃报告,大多是解决了签名证书不匹配、Gradle配置残留这两个问题。你可以按上面的步骤逐一排查。
内容的提问来源于stack exchange,提问作者erkan demir
相关产品推荐
相关产品推荐

