已发布Firebase应用激活Crashlytics后无显示问题排查
Firebase Crashlytics调试崩溃无后台显示问题排查
我有一款已发布的产品应用,目前使用Firebase进行消息推送与数据分析,现在想要激活Crashlytics功能。已开启调试模式,但测试崩溃后Firebase后台并未显示相关信息。
执行以下命令:
% adb shell setprop log.tag.FirebaseCrashlytics DEBUG % adb logcat -s FirebaseCrashlytics
Android Studio运行窗口输出如下:
D/FirebaseCrashlytics: Handling uncaught exception "java.lang.RuntimeException: Test Crash" from thread main D/FirebaseCrashlytics: No userId set for session 6357... D/FirebaseCrashlytics: No userId set for session 6357... D/FirebaseCrashlytics: Opening a new session with ID 6357... D/FirebaseCrashlytics: Crashlytics automatic data collection ENABLED by global Firebase setting. D/FirebaseCrashlytics: Logging app exception event to Firebase Analytics D/FirebaseCrashlytics: Sending report through Google DataTransport: 6357... D/CompatibilityChangeReporter: Compat change id reported: 194532703; UID 10160; state: DISABLED V/FA: Connection attempt already in progress V/FA: Recording user engagement, ms: 221517 D/FirebaseCrashlytics: Crashlytics report successfully enqueued to DataTransport: 6357... D/FirebaseCrashlytics: Deleted report file: /.../files/.com.google.firebase.crashlytics.files.v2:.../priority-reports/6357... D/FirebaseCrashlytics: Completed exception processing. Invoking default exception handler. I/Process: Sending signal. PID: 13845 SIG: 9
我已按照官方说明添加了SDK,现在有两个疑问:
- 是否需要删除Firebase中的应用重新创建?这是正式产品应用,担心操作带来不良后果。
- 是否需要添加新的google-services.json文件到项目中?
更新:尝试添加新的google-services.json到项目中,但没有任何变化。请问我是否正确添加/激活了Crashlytics?
模块级build.gradle配置:
// in build.gradle module level: apply plugin: 'com.google.firebase.crashlytics' ... implementation platform('com.google.firebase:firebase-bom:30.5.0') // Add the dependency for the Firebase SDK for Google Analytics // When using the BoM, don't specify versions in Firebase dependencies implementation 'com.google.firebase:firebase-crashlytics' implementation 'com.google.firebase:firebase-analytics' //in build.gradle project level: classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
完整项目级build.gradle配置:
allprojects { repositories { google() mavenCentral() maven { url "https://jitpack.io" } jcenter() } } ext { retrofit_version = '2.6.2' dagger_version = '2.35.1' butterknife_version = '8.8.1' room_version = '1.1.1' kotlin_coroutines_version = "1.1.0" lifecycle_version = '2.2.0' fragmentKtxVersion = '1.3.0-alpha07' } buildscript { repositories { google() mavenCentral() maven { url "https://jitpack.io" } jcenter() } dependencies { classpath 'com.android.tools.build:gradle:4.2.2' classpath 'com.google.gms:google-services:4.3.13' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2' } }
问题分析与解决建议
从日志来看,Crashlytics已经成功捕获并上报了崩溃报告,但后台未显示,可按以下步骤排查:
等待报告同步延迟
Crashlytics报告从设备上传到后台可能存在延迟,调试环境下最长可能需要10-15分钟,建议等待一段时间后刷新后台页面。确认Firebase项目配置
- 检查Firebase控制台中对应应用的Crashlytics是否已启用(进入Crashlytics页面,若提示"启用Crashlytics"则需点击启用)。
- 确保google-services.json中的
project_id、app_id与Firebase控制台中应用的信息完全匹配,无需重新下载新的json,除非之前的配置有误。
检查构建配置正确性
- 模块级build.gradle中,确保
apply plugin: 'com.google.firebase.crashlytics'放在apply plugin: 'com.android.application'之后,且在apply plugin: 'com.google.gms.google-services'之前(如果存在的话)。 - 确认项目级build.gradle中
firebase-crashlytics-gradle插件版本与BOM版本兼容,当前BOM 30.5.0对应推荐的插件版本为2.9.2,你的配置是匹配的,无需修改。
- 模块级build.gradle中,确保
绝对不要删除Firebase应用
重新创建Firebase应用会导致现有推送、分析数据关联中断,对正式产品影响极大,禁止执行此操作。验证调试环境上报逻辑
- 确保测试设备联网状态正常,若设备处于离线状态,报告会暂存本地,联网后自动重试上传。
- 可以尝试重启应用后再触发一次崩溃,观察日志中是否有重复的上报成功信息。
检查数据收集权限
确认应用中没有禁用Crashlytics数据收集的代码,可手动添加以下代码确保无拦截:FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
内容的提问来源于stack exchange,提问作者Parissa Kalaee
相关产品推荐
相关产品推荐

