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

Android Crashlytics上报异常失败:控制台无日志且显示0崩溃求助

搞定Crashlytics不显示日志+registerOnMeasurementEventListener缺失问题

嘿,我之前也碰到过类似的情况,你遇到的这个问题大概率是依赖版本不兼容或者配置细节没踩对,结合你给出的LogCat信息,给你梳理几个针对性的解决步骤:

1. 先搞定依赖版本冲突(核心原因)

LogCat里的Expected method missing: registerOnMeasurementEventListener基本就是Crashlytics和Firebase相关依赖(比如Analytics/Core)版本不匹配导致的。最好的解决方式是用Firebase的BoM来统一管理所有Firebase依赖的版本,这样能彻底避免版本冲突:

在项目根目录的build.gradle(或者Module的build.gradle.kts,看你用的是Groovy还是Kotlin)里添加BoM:

dependencies {
    // 引入Firebase BoM,用最新的稳定版本就行
    implementation platform('com.google.firebase:firebase-bom:32.7.0')

    // 然后添加Crashlytics和Analytics依赖,不用写版本号,BoM会自动匹配
    implementation 'com.google.firebase:firebase-crashlytics'
    implementation 'com.google.firebase:firebase-analytics'
}

如果不想用BoM,那一定要保证Crashlytics和Firebase Analytics/Core的版本完全一致,比如你用firebase-crashlytics:18.4.0,那firebase-analytics也要对应相同大版本的兼容号。

2. 确认初始化配置没遗漏

虽然LogCat显示已经初始化,但还是要检查下:

  • 看看AndroidManifest.xml里有没有Crashlytics的初始化提供者,一般依赖会自动帮你加,但手动确认下更稳妥:
    <provider
        android:name="com.google.firebase.crashlytics.CrashlyticsInitProvider"
        android:authorities="${applicationId}.crashlyticsinitprovider"
        android:exported="false"
        android:initOrder="100" />
    
  • 如果你是手动初始化的话,要在Application的onCreate里先初始化Firebase,再开启Crashlytics收集:
    @Override
    public void onCreate() {
        super.onCreate();
        FirebaseApp.initializeApp(this);
        Crashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
    }
    
    要是你用的是自动初始化(默认是开启的),就别手动调用这些了,重复初始化反而会出问题。

3. 别找错日志位置!

你用的Crashlytics.logException(exception);是记录非致命异常的,这类日志不会出现在控制台的"崩溃"标签页里,得去"非致命异常"(Non-fatal)页面找!很多人第一次用都会在这里踩坑。

如果要测试致命崩溃(就是会让应用闪退的那种),可以写个按钮点击事件直接抛出异常:

button.setOnClickListener(v -> {
    throw new RuntimeException("Crashlytics Test Crash");
});

注意:测试的时候别用模拟器的"强制停止",要让应用自然闪退重启,这样Crashlytics才会把日志上传上去。

4. 排查上传相关的小问题

  • 确保测试设备有稳定的网络,Crashlytics要联网才能上传日志。
  • 检查应用有没有加网络权限:
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
  • 要是开了ProGuard/R8混淆,一定要加Crashlytics的混淆规则,不然会把关键方法混淆掉:
    -keep class com.google.firebase.crashlytics.** { *; }
    -keepattributes SourceFile,LineNumberTable
    

5. 清缓存再试一次

有时候缓存会卡住日志上传,试试:

  • 卸载应用,重启测试设备。
  • 重新安装应用,触发异常后等个3-5分钟,Firebase的日志上传不是实时的,有延迟很正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:32:15