我们在 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);
即使调用方法
originalOnError(errorDetails)
,错误也不会记录在 firebase crashlytics 仪表板中。
我们怎样才能让这些非致命错误也被报告呢?
日志记录是由 firebase crashlytics 完成的。 Firebase 控制台仪表板中的默认过滤器设置为
crashes
。删除过滤器,我们可以看到所有报告的错误、崩溃、非致命错误。
感谢这个stackoverflow帖子
如果您想在您的应用程序中记录非致命错误日志。 在我的例子中,我用它来记录来自服务器的除 200 之外的所有请求。 你也可以这样使用。
为此,您可以在完成所有配置后使用这个
FirebaseCrashlytics.instance.log('Here is My custom Error for it ');