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

Android端Crashlytics.logException失效:非致命异常无法显示于Firebase控制台

解决Android Crashlytics.logException非致命异常不显示的问题

嘿,我之前也踩过Crashlytics非致命异常不上报的坑,结合你给出的依赖配置和场景,给你几个实用的排查和解决方向:

  • 版本兼容性问题:你当前使用的com.crashlytics.sdk.android:crashlytics:2.9.1和Firebase依赖(11.8.0版本)都是比较老旧的版本,存在版本兼容风险。后来Firebase已经把Crashlytics整合到自家的依赖体系中,旧的Fabric版本Crashlytics早已停止维护。建议你升级到Firebase官方整合后的Crashlytics依赖,比如:

    implementation 'com.google.firebase:firebase-crashlytics:17.5.0'
    implementation 'com.google.firebase:firebase-core:17.5.0'
    implementation 'com.google.firebase:firebase-messaging:21.1.0'
    

    升级后记得同步Gradle,执行Clean Project和Rebuild Project,确保依赖替换完全。

  • 初始化正确性检查:旧版本的Fabric Crashlytics需要在Application的onCreate方法中完成初始化,确保代码里有这段:

    @Override
    public void onCreate() {
        super.onCreate();
        Fabric.with(this, new Crashlytics());
    }
    

    如果升级到新版本的Firebase Crashlytics,初始化方式改为:

    FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
    

    另外,旧版本需要确保AndroidManifest中配置了Fabric的API Key(如果是通过Firebase关联的,可能已经自动配置,但最好确认一下)。

  • 调试与Release模式差异:调试模式下,Crashlytics可能会延迟甚至跳过非致命异常的上报。建议你打包成Release版本安装到设备上,触发异常后重启2-3次,再去Firebase控制台查看。

  • 全局异常处理器的干扰:如果你的应用中自定义了Thread.UncaughtExceptionHandler,一定要确保在处理异常后把异常传递给Crashlytics,比如:

    @Override
    public void uncaughtException(Thread t, Throwable e) {
        // 你的自定义逻辑
        Crashlytics.logException(e); // 必须调用这个让Crashlytics捕获
        // 或者如果是新版本:FirebaseCrashlytics.getInstance().recordException(e);
    }
    

    否则自定义处理器会拦截异常,导致Crashlytics收不到非致命异常。

  • 控制台筛选条件检查:登录Firebase控制台后,切换到Crashlytics页面,确认你已经切换到「非致命」标签页,并且时间范围设置正确(比如选择「过去7天」而不是「今天」),避免因为筛选条件看不到记录。

内容的提问来源于stack exchange,提问作者Bek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:33:53