You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase Crashlytics未发送崩溃报告问题求助

解决Firebase Crashlytics未收到崩溃报告的问题

我之前也碰到过一模一样的问题,结合你给出的日志信息,核心问题出在Crashlytics的会话初始化失败,以及后续上报时的超时问题。下面是几个我亲测有效的解决方案,一步步来排查:

1. 检查Crashlytics的初始化时机与流程

日志里的Tried to write a fatal exception while no session was open说明崩溃发生时,Crashlytics还没完成会话建立,大概率是初始化太晚或者流程不对。

  • 务必在Application的onCreate()方法主线程中尽早初始化,不要放在子线程里:
    public class MyApp extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
            // 先初始化Firebase核心
            FirebaseApp.initializeApp(this);
            // 配置并启用Crashlytics
            CrashlyticsCore crashlyticsCore = new CrashlyticsCore.Builder()
                    .disabled(BuildConfig.DEBUG) // 注意:测试时可以改成false,确保DEBUG模式也能收集
                    .build();
            FirebaseCrashlytics.getInstance().setCrashlyticsCore(crashlyticsCore);
            FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
        }
    }
    
  • 确认AndroidManifest.xml里已经注册了你的自定义Application类。

2. 给Crashlytics足够的初始化时间再模拟崩溃

有时候应用启动太快,Crashlytics还没完成会话初始化就触发了崩溃,导致无法写入报告。可以在模拟崩溃前加个延迟:

new Handler(Looper.getMainLooper()).postDelayed(() -> {
    // 模拟致命崩溃
    throw new RuntimeException("Test Crash from MyApp");
}, 3000); // 延迟3秒,让Crashlytics完成初始化

3. 解决后台任务超时问题

日志里的TimeoutException说明Crashlytics在处理上报任务时超时了,可能是网络或配置问题:

  • 确保设备能正常访问Firebase服务:可以先测试Firebase Analytics是否能上报事件,验证网络连通性;
  • 检查是否有防火墙、代理或者VPN阻止了Crashlytics的网络请求;
  • 尝试重启设备和应用,重新触发崩溃后等待几分钟(Crashlytics上报不是实时的,通常需要5-10分钟同步到控制台)。

4. 验证集成配置是否完整

再核对一遍build.gradle的配置,确保没有遗漏:

项目级build.gradle

buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:4.3.15'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.3' // 用最新版本
    }
}

模块级build.gradle

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.1'
    implementation 'com.google.firebase:firebase-analytics:21.0.1'
}

5. 手动触发崩溃后重启应用

Crashlytics通常会在应用重启后才上传崩溃报告,所以模拟崩溃后,手动重启应用,然后耐心等待一段时间再去Firebase控制台查看。

内容的提问来源于stack exchange,提问作者Jean-Pascal MEWENEMESSE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:19:58