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

2019-03-2717:14:19APP与小程序开发Comments3,699 views字数 1209阅读模式

flutter使用dart开发大部分异常信息都是导致页面显示不正确(页面显示错误栈信息)或者空白,那flutter如何捕获这些异常,捕获异常后又如何收集上报监控系统,对于原生开发者来说,Fabric Crashlytics(崩溃收集系统)大家肯定不陌生,本文讲述Flutter如何使用fabric进行异常信息收集监控。主要分如下三步:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/10468.html

一  Flutter dart端捕获异常

使用 和 runZoned, 在的main()方法中添加如下代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/10468.html

二 通过channel把异常信息传到native:

上图代码中_reportError()是就是通过channel调用native方法,把error栈的信息传的native中,channel具体用法参考flutter platform channel详解,native端接收到error栈信息后如何上报fabric,请看第三步。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/10468.html

三 fabric收集异常信息

接入过fabric的开发者了解,fabric的接入及其简单,调用SDK的init及set deviceId一些基本信息就ok, 开发者并不需要主动去上传错误信息,fabric源码内部是通过实现接口,即自定义 来实现的,在uncaughtException方法中接收到错误信息并进行上报的, 之后把错误信息传递给默认的Exception处理器(注意这里所说的默认Exception处理器是在fabric源码初始化方法里通过()获取的(并不一定是系统的哦)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/10468.html

对于fabric收集大都是导致应用崩溃的错误日志,而对于flutter来说大部分异常信息只是页面上显示问题,并不会导致应用崩溃,我们只是想要向fabric上报异常信息,那要怎么做呢?其实方法很简单,只要分小三步:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/10468.html

1 、 定义FlutterException(继承Exception), 并且在应用内自定义,命名FlutterExceptionHandler,代码如下,注意init中的两行代码,很关键哦文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/10468.html

在uncaughtException中对应FlutterException的异常,直接return,这样就不会往下传递到系统Exception处理器了,就可以保证应用不崩溃文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/10468.html

2、 在fabric调用init方法之前进行FlutterExceptionHandler init,这样刚才提到的fabric里的默认Exception处理器就是FlutterExceptionHandler了文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/10468.html

3、 在接收到dart端传过来的errro信息处调用().uncaughtException((), new FlutterException(exceptionStr))即可。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/10468.html

(另外,说明下如果在第二小步之后没有其他地方调用()的情况 这里的() 为fabric sdk里的CrashlyticsUncaughtExceptionHandler )文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/10468.html

在dart端制造个错误信息,试验下吧,这样打开fabric系统,就能看到异常信息了文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/10468.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/10468.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/xcx/10468.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定