Firebase Crashlytics无崩溃报告:会话未设userId及数据收集禁用问题
Firebase Crashlytics崩溃报告不显示问题排查与解决
问题背景
- 按Firebase Crashlytics官方文档配置Android项目后,测试崩溃控制台无报告,始终停留在设置页面
- Firebase Remote Config功能正常,更换
google-services.json无效 - 调试日志显示核心异常:
Crashlytics自动数据被firebase_crashlytics_collection_enabled清单标志禁用,同时存在非关键警告No userId set for session(崩溃时间09:36:38,应用重启时间09:37:58)
调试命令
通过以下adb命令获取Crashlytics详细日志:
adb shell setprop log.tag.FirebaseCrashlytics DEBUG adb logcat -s FirebaseCrashlytics
核心问题定位
日志明确指向清单文件中firebase_crashlytics_collection_enabled标志禁用了数据收集,这是崩溃报告无法上传的直接原因。No userId set for session属于可选信息警告,不会影响报告上传流程。
解决方案
1. 修正清单文件配置
打开AndroidManifest.xml,检查并修改如下meta-data:
- 若已存在该配置,将
android:value改为true - 若不存在,添加该配置到
<application>标签内:
<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="true" />
注:多环境项目需确保所有环境的清单文件都正确配置
2. 验证build.gradle配置
确保项目级和应用级build.gradle的Crashlytics配置完整:
- 项目级build.gradle(根目录):
buildscript { dependencies { // 使用最新稳定版插件(可根据官方文档更新版本号) classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9' } }
- 应用级build.gradle(app模块):
plugins { id 'com.android.application' id 'com.google.gms.google-services' id 'com.google.firebase.crashlytics' // 必须引入此插件 } dependencies { implementation 'com.google.firebase:firebase-crashlytics:18.4.0' implementation 'com.google.firebase:firebase-core:21.1.1' }
3. 重新测试
- 执行
File > Invalidate Caches / Restart清理缓存并重建项目 - 手动触发崩溃后,必须重启应用(Crashlytics仅在应用重启时上传崩溃数据)
- 等待5-10分钟后查看Firebase控制台(报告上传存在正常延迟)
4. 额外排查项
- 确认设备网络正常,无代理或防火墙拦截Firebase请求
- 检查Firebase控制台是否选中了当前测试的项目和应用
内容的提问来源于stack exchange,提问作者Pandarian Ld
相关产品推荐
相关产品推荐

