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

Firebase Crashlytics启用异常:com_crashlytics_build_id为全零值、控制台无数据且映射文件无法上传

解决Firebase Crashlytics无数据、build_id全0及映射文件未上传问题

我之前也遇到过几乎一模一样的问题,看起来是配置顺序、版本兼容性或者构建任务的问题,咱们一步步来排查解决:

1. 修正Gradle插件应用顺序

你当前的插件应用顺序可能有问题,Google官方要求com.google.gms.google-services必须是最后一个应用的插件,调整app级build.gradle的插件顺序:

// 先应用Android插件
apply plugin: 'com.android.application'
// 然后应用Crashlytics插件
apply plugin: 'com.google.firebase.crashlytics'
// 最后应用Google Services插件
apply plugin: 'com.google.gms.google-services'

2. 升级Gradle插件版本

你使用的google-services:4.3.5和firebase-crashlytics-gradle:2.5.2版本过于老旧,存在已知的兼容性问题,建议升级到更稳定的版本(匹配你的AGP版本,比如AGP 7.x对应以下版本):
在项目根目录的build.gradle中修改:

buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:4.3.15'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9'
    }
}

3. 修复com_crashlytics_build_id.xml全0问题

这个文件全0说明Crashlytics插件没有正确执行构建任务,执行以下步骤:

  • 执行命令清理项目并重新构建:
    ./gradlew clean assembleDebug
    
  • 检查app模块的build/generated/res/google-services/debug/values/com_crashlytics_build_id.xml,确认build_id是否生成了非全0的字符串。

4. 启用映射文件上传

默认Debug版本可能不会上传映射文件,在app级build.gradle中显式开启:

android {
    buildTypes {
        debug {
            firebaseCrashlytics {
                // 开启Debug版本的映射文件上传
                mappingFileUploadEnabled true
                // 如果有C++/JNI代码,开启原生符号上传
                nativeSymbolUploadEnabled true
            }
        }
        release {
            firebaseCrashlytics {
                mappingFileUploadEnabled true
            }
        }
    }
}

构建时不要跳过Crashlytics的上传任务(比如不要加-x crashlyticsUploadSymbolsDebug参数)。

5. 正确测试崩溃

不要在Application.onCreate()中直接触发崩溃(此时Crashlytics还未初始化完成),建议在用户交互后触发,比如按钮点击事件:

// 示例代码(Java)
findViewById(R.id.test_crash_btn).setOnClickListener(v -> {
    throw new RuntimeException("Test Crash for Firebase Crashlytics");
});

崩溃后必须重启应用,Crashlytics会在下次启动时上传崩溃报告,同时确保设备有稳定的网络连接。

6. 验证基础配置

  • 确认google-services.json放置在app模块的根目录,且文件中的package_name与app的applicationId完全一致。
  • 登录Firebase控制台,确认当前查看的是你刚添加的应用,且Crashlytics功能处于启用状态(控制台Crashlytics页面顶部的开关)。

7. 查看日志排查问题

用adb过滤Crashlytics相关日志,检查初始化和上传状态:

adb logcat | grep Crashlytics

如果看到Crashlytics initialized successfully说明初始化正常;如果有错误日志(比如网络错误、配置错误),可以根据日志信息针对性解决。

最后,卸载应用并清除项目缓存后重新构建安装,应该就能正常采集崩溃数据了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 15:07:39