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

Flutter项目接入Firebase Crashlytics后首次崩溃上报持续待处理

修复方案

1. 移除废弃Fabric依赖(核心问题)

当前你使用的Fabric相关配置早已被Firebase官方废弃,是导致上报失败的主要原因,按以下方式修改配置:

  • 项目根目录build.gradle修改后内容:
buildscript {
    repositories {
        google()
        mavenCentral() // 替换已废弃的jcenter
    }

    dependencies {
        classpath 'com.google.gms:google-services:4.3.14' // 升级到4.3.10以上版本
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2' // 新增官方Crashlytics插件,移除原有io.fabric.tools依赖
        classpath 'com.android.tools.build:gradle:4.2.2' // 升级到兼容版本
    }
}
  • app目录下build.gradle修改后内容:
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
// 移除原有的apply plugin: 'io.fabric'
  • pubspec.yaml指定明确的依赖版本,避免版本不兼容:
firebase_core: ^1.7.0
firebase_crashlytics: ^2.8.1 # 适配firebase_core 1.7.0的稳定版本
firebase_analytics: ^9.1.12

2. 修正崩溃测试逻辑

  • 你编写的原生触发崩溃代码存在拼写错误,RuntimeExeption应改为RuntimeException
  • Crashlytics的崩溃日志会在崩溃后首次重启应用时才会上报,触发崩溃后需完全退出应用,重新打开后等待3-5分钟即可在控制台看到数据
  • 优先打release包测试,debug模式下默认会禁用部分上报逻辑,如需在debug模式下测试,可调整初始化代码:
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
// 调试模式强制开启上报,正式发布时可根据构建类型动态配置
await FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
FirebaseCrashlytics.instance.setUserIdentifier("51");
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
// 延时触发崩溃,确保初始化流程完全完成
Future.delayed(const Duration(seconds: 2), () {
  FirebaseCrashlytics.instance.crash();
});

3. 网络适配检查

测试设备需可正常访问Firebase服务,避免上报请求被网络拦截。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:45:03