Flutter集成Firebase Crashlytics后仪表盘无显示求助
Flutter集成Firebase Crashlytics后仪表盘无数据排查方案
1. 修正Gradle插件顺序
你的应用级build.gradle插件顺序存在问题,正确的加载顺序应该是先加载Android应用插件,再加载Flutter相关插件,最后加载Firebase系列插件。调整后如下:
apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.firebase.crashlytics' dependencies { implementation platform('com.google.firebase:firebase-bom:32.3.1') implementation("com.google.firebase:firebase-crashlytics") implementation 'com.google.firebase:firebase-analytics' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" }
插件顺序错误会导致Crashlytics无法正常完成初始化注入。
2. 确认初始化与错误捕获逻辑的完整性
确保Firebase初始化和错误捕获代码在runApp()之前执行,完整示例:
void main() async { WidgetsFlutterBinding.ensureInitialized(); // 初始化Firebase await Firebase.initializeApp(); // 捕获Flutter框架层错误 FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError; // 捕获平台层错误 PlatformDispatcher.instance.onError = (error, stack) { FirebaseCrashlytics.instance.recordError(error, stack, fatal: true); return true; }; runApp(const MyApp()); }
可以手动添加测试代码触发崩溃,验证上报逻辑:
// 触发致命崩溃 FirebaseCrashlytics.instance.crash(); // 上报非致命错误 FirebaseCrashlytics.instance.recordError('测试非致命错误', StackTrace.current);
3. 核对签名与Firebase控制台配置
- 通过Android Studio的
Gradle > app > Tasks > android > signingReport获取当前测试包(debug/release)的SHA-1、SHA-256值,确保这些值已添加到Firebase控制台的应用设置中。 - 确认
android/app/目录下的google-services.json是从Firebase控制台下载的最新版本,且对应当前应用。
4. 注意数据延迟与测试环境
- Crashlytics数据不会实时同步,首次上报通常需要等待5-10分钟,部分情况下可能更久。
- 测试设备需保持正常网络连接,避免代理或防火墙拦截Firebase请求。
- 触发崩溃后,需完全关闭应用再重新打开,确保崩溃日志能正常上报。
5. 查看日志排查问题
在Android Studio的Logcat中搜索Crashlytics关键词,检查是否有初始化成功或错误提示:
- 若出现
Missing google_app_id类日志,说明google-services.json配置有误。 - 若出现
Crashlytics initialized,说明初始化正常,只需等待数据同步。
内容的提问来源于stack exchange,提问作者Sheikh Faizan
相关产品推荐
相关产品推荐

