Flutter如何收集Android应用的崩溃信息

在Flutter开发中,如何正确收集Android应用的崩溃信息?目前遇到native崩溃无法捕获的情况,有没有成熟的方案或插件推荐?最好能详细说明集成步骤和注意事项。

2 回复

在Flutter中收集Android崩溃信息,可使用flutter_crashlytics包。通过集成Firebase Crashlytics,自动捕获Dart和Native层崩溃,并上传至控制台查看详细报告。

更多关于Flutter如何收集Android应用的崩溃信息的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中收集Android应用的崩溃信息,可以通过以下方法实现:

1. 使用flutter_crashlytics包(推荐)

这是最常用的崩溃收集方案,基于Firebase Crashlytics。

步骤:

  1. pubspec.yaml中添加依赖:
dependencies:
  flutter_crashlytics: ^3.0.0
  1. main()函数中初始化:
import 'package:flutter_crashlytics/flutter_crashlytics.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  await FlutterCrashlytics().initialize();
  
  runApp(MyApp());
}
  1. 捕获异常:
FlutterError.onError = (FlutterErrorDetails details) async {
  await FlutterCrashlytics().reportCrash(
    details.exception,
    details.stack,
    information: details.context?.toString(),
  );
};

2. 使用firebase_crashlytics

这是官方维护的Firebase崩溃收集包。

步骤:

  1. 添加依赖:
dependencies:
  firebase_crashlytics: ^3.0.0
  1. 初始化:
import 'package:firebase_crashlytics/firebase_crashlytics.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  
  FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
  
  runApp(MyApp());
}

3. 自定义异常捕获

对于简单的需求,可以手动捕获异常:

void main() {
  runZonedGuarded(() {
    runApp(MyApp());
  }, (error, stackTrace) {
    // 发送到自己的服务器
    _sendErrorToServer(error, stackTrace);
  });
}

配置说明:

  • Android配置:需要在android/app/build.gradle中添加Firebase相关配置
  • 符号表上传:发布版本时需要配置ProGuard/R8映射文件上传
  • 测试验证:可通过FirebaseCrashlytics.instance.crash()测试崩溃收集

建议使用Firebase Crashlytics方案,它提供完整的崩溃分析、统计和符号化堆栈跟踪功能。

回到顶部