我们在flutter应用程序中使用firebase_crashlytics:^0.4.0 1
。在runApp()中,我们开始监听错误和崩溃,就像留档中提到的那样。
runZonedGuarded(() {
runApp(
..
}, (error, stackTrace) {
FirebaseCrashlytics.instance.recordError(error, stackTrace);
});
一般情况下,会报告崩溃,但不会报告由小部件库捕获的这种类型的崩溃异常。在某些情况下,对象可能为空,但是没有向firebase crashlytics仪表板报告崩溃,什么也没有发生。用户只收到一个灰色的屏幕,就是这样。因此,只有当用户报告这些错误时,我们才会收到通知,但我们不会收到日志。这是一个非致命错误,我们应该使用recordFlutterError方法吗?
顺便说一句,当抛出错误时会调用它:
Function originalOnError = FlutterError.onError;
FlutterError.onError = (FlutterErrorDetails errorDetails) async {
await FirebaseCrashlytics.instance.recordFlutterError(errorDetails);
// Forward to original handler.
originalOnError(errorDetails);
即使调用了< code > original error(error details)方法,firebase crashlytics仪表板中也不会记录该错误。如何才能让这些非致命错误也能被报告?
测井是由火基裂解剂完成的。firebase控制台仪表板中的默认过滤器设置为crashs
。删除过滤器,我们可以看到所有报告的错误、崩溃和非致命错误。感谢stackoverflow的帖子