首页 > 解决方案 > FirebaseCrashlytics,不会报告异常,但运行 .crash 会

问题描述

下面是我必须初始化运行我的应用程序的代码。作为一个测试,我有一个未来会抛出异常(超出范围),这是怎么没有发送到 crashlytics 的?

如果我发出 FirebaseCrashlystics.instance.crash() 它将发送报告。我已将过滤器更改为 Event-type="non-fatals" 但我在那里看不到我的错误。

我不知道我错过了什么?

class AppConfig {
  final String appTitle;
  final BuildFlavor buildFlavor;
  final bool initializeCrashlytics, enableCrashlyticsInDevmode;

  AppConfig(
      {@required this.appTitle,
      @required this.buildFlavor,
      this.initializeCrashlytics = true,
      this.enableCrashlyticsInDevmode = true});

  Future<void> _testAsyncErrorOnInit() async {
    Future<void>.delayed(
      const Duration(seconds: 2),
      () {
        final List<int> list = <int>[];
        print(list[100]);
      },
    );
  }

  Future startCrashlytics() async {
    Function originalError = FlutterError.onError;
    if (this.initializeCrashlytics) {
      await FirebaseCrashlytics.instance
          .setCrashlyticsCollectionEnabled(this.enableCrashlyticsInDevmode);
      FlutterError.onError = (FlutterErrorDetails errorDetails) async {
        await FirebaseCrashlytics.instance.recordFlutterError(errorDetails);
        originalError(errorDetails);
      };
      FirebaseCrashlytics.instance.crash(); << This works

      // await _testAsyncErrorOnInit(); << This doesn't Yes i do comment crash and uncomment this.
    }
  }

  Future run() async {
    // Lägg in initiering av firebase, crashlytics
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();

    await startCrashlytics();

    runApp(ElectronicCupongs(appTitle: appTitle));
  }
}

标签: fluttercrashlytics

解决方案


我看到您检查了包的示例,但是您的应用程序是否包含在内runZonedGuarded

示例页面包含所需的详细信息,但您也可以检查包的文件,或者更易读的格式FlutterFire


推荐阅读