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

React Native Firebase Crashlytics安卓崩溃未上报且build id缺失

环境说明

  • React native版本:0.59
  • react-native-firebase版本:^5.5.0

故障排查&解决方案

针对报错 Crashlytics build id is missing 导致的安卓端崩溃日志无法上报问题,按以下顺序排查:

1. 修正Gradle插件引入顺序

android/app/build.gradle 顶部的插件引入顺序必须严格遵循以下规则,顺序错误会直接导致build id生成失败:

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'io.fabric'

2. 补全根目录Gradle依赖

检查android/build.gradle的buildscript配置,确保添加了Fabric的maven仓库和插件依赖:

buildscript {
    repositories {
        google()
        jcenter()
        // 必须添加Fabric的maven源
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        // 保留原有安卓gradle插件、google服务插件配置
        classpath 'com.android.tools.build:gradle:你当前使用的版本号'
        classpath 'com.google.gms:google-services:4.2.0'
        // 必须添加Fabric工具类路径
        classpath 'io.fabric.tools:gradle:1.31.2'
    }
}

3. 补充RN 0.59版本特有配置

在android/app/build.gradle的defaultConfig节点添加ndk过滤和build id注入配置:

defaultConfig {
    // 保留原有应用ID、版本号等配置不变
    ndk {
        abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
    }
    manifestPlaceholders = [
        "io.fabric.ApiKey": "你项目的Fabric API密钥"
    ]
}

4. 原生初始化配置

RN 0.59版本不会自动初始化Crashlytics,需要在MainApplication.java的onCreate方法中手动添加初始化代码:

import com.crashlytics.android.Crashlytics;
import io.fabric.sdk.android.Fabric;

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

5. 清理缓存重新构建

构建缓存会导致资源文件丢失,按顺序执行以下命令重新打包:

cd android
./gradlew clean
cd ..
rm -rf node_modules
npm install
# 测试上报必须打release包,debug包的RN红屏异常不会触发原生崩溃上报
react-native run-android --variant=release

6. 验证上报逻辑

手动调用崩溃方法测试上报,不要使用debug模式下的RN红屏报错:

// 可在原生按钮点击事件中添加该代码触发崩溃
Crashlytics.getInstance().crash();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:30:04