Code前端首页关于Code前端联系我们

Flutter应用开发:三步使用fabric收集监控异常信息

terry 2年前 (2023-09-23) 阅读数 63 #移动小程序

Flutter使用dart开发的异常信息大部分会导致页面显示不正确(页面显示错误堆栈信息)或者为空,那么如何处理那工作? flutter 捕获这些异常并捕获异常。那么如何采集这个并上报给监控系统呢。对于原生开发者来说,Fabric Crashlytics(崩溃收集系统)肯定是大家都知道的。本文介绍Flutter如何利用灰尘来收集和监控异常信息。主要分为以下三个步骤:

1。 Flutter dart 端捕获异常

使用并runZoned,在main()方法中添加以下代码:

2.通过通道将异常信息传递给native方法:

图中的代码中,_reportError()的目的是通过通道调用native方法,并将错误堆栈信息传递给native。通道的具体使用请参考flutter平台通道的详细说明。 Native端收到错误堆栈信息后,如何向Fabric上报错误堆栈信息,参见第三步。

三种fabric收集异常信息

连接过fabric的开发者都知道,访问fabric是非常容易的。只需调用SDK的init并设置deviceId和一些基本信息即可。开发者不必主动上传bug。信息,物质的源代码内部是通过实现接口来实现的,即定制化。在uncaughtException方法中接收并报告错误消息,然后将错误消息传递给标准异常处理器(注意这里说的是什么)。默认的Exception handler是通过fabric源码初始化方法中的()获取的(不一定是

对于fabric来说,大部分导致应用崩溃的错误日志都会被收集,而对于flutter来说,大部分异常信息是只是收集但是为了在页面上显示一个问题,这样可以防止应用程序崩溃,向结构体报告异常信息,那么我们应该怎么做呢?其实方法很简单,只需要三步:

1.定义FlutterException(继承Exception)并在应用程序中调整,称为 FlutterExceptionHandler ,代码如下,注意 init 中的两行代码,非常关键

在uncaughtException中,必须直接返回FlutterException对应的异常,这样才不会传递给系统异常处理器,这样可以保证应用程序不会崩溃

2。如刚才提到的,在结构调用 init 方法之前运行 FlutterExceptionHandler init 。 Fabric 中的默认异常处理程序是 FlutterExceptionHandler

3。当收到 dart 端的错误信息时,调用 ().uncaughtException((), new FlutterException(exceptionStr)) 即可。

(另外解释一下如果第二步之后其他地方没有调用()会发生什么情况。这里的()是fabric sdk中的CrashlyticsUncaughtExceptionHandler)

在dart端创建一个错误并尝试一下,在这样打开fabric系统就会看到异常信息。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门