首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flutter 异常处理方案——灰度与降级

build 抛出的https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/widgets/framework.dart...发生错误,对应到 iOS 就是 Flutter.framework 发生错误,这部分的错误我们直接交给平台侧崩溃收集的 SDK 来处理,比如 firebase crashlytics、bugly 等,...3.3 引擎崩溃降级 但如果是引擎发生了错误必定会导致 App Crash,这种情况下不仅需要上报日志,也会置好标志位,在用户下次打开 App 不再启动 Flutter Engine,并全量降级 Flutter...3.5 Flutter 相关崩溃降级 除此以外,我们也遇到过 Flutter 导致的崩溃,不属于引擎崩溃也不是产物加载问题,也不是 Flutter 异常,仅仅是 Flutter Plugin 的问题,如插件原生侧的实现逻辑问题导致的崩溃...,这也属于 Flutter 相关崩溃,但是 Bugly 上报的日志中无法找到 Flutter 字样,因为程序退出并非中断 Flutter 内部或者引擎侧。

2.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

Flutter 日志最佳实践

Flutter 项目中添加日志的最佳实践 这里,我们将讨论项目中添加日志的基本规则。...1.记录适当的信息 尝试解决错误的时候,记录太多的信息让人不知所措,而信息太少又无法提供足够的信息来解决问题。与任何错误一样,错误可以追溯到 Flutter 本身的基础。...连接 Crashlytics Firebase’s Crashlytics 服务允许开发者分析应用程序中崩溃和特殊事件。...尽管崩溃属于极端事件,但是 Crashlytics 还支持将应用中的自定日志发送到 Firebase Crashlytics 控制台。...这有助于 Crashlytics 成为一种通用的日志工具,而不仅仅是应用程序出现问题提供帮助的工具。 按照下面的步骤,在你的应用程序中使用 Firebash Crashlytics: 1.

4.7K20

Flutter异常监测与上报

Flutter对这两种异常提供了不同的捕获方式,Framework异常是由Flutter框架引发的异常,通常是由于错误的应用代码造成Flutter框架底层的异常判断引起的,当出现Framework异常...Framework异常指的是Flutter框架引起的异常,通常是由于执行错误的应用代码造成Flutter框架底层异常判断引起的,当出现Framework异常,系统会自动弹出一个的红色错误界面,如下图所示...当运行上面的代码,控制台会给出如下的错误信息。...CrashlyticsFlutter官方支持的日志上报方案,开源且免费,缺点是没有公开的Flutter插件,而flutter_crashlytics插件接入起来也比较麻烦。...Flutter应用,如果出现错误,就可以Sentry服务器端看到对应的错误日志,如下图所示。

2.7K10

扒虫篇-崩溃日志解读及Crash收集

当遇到这种错误, 控制一般不会给你很多关于崩溃的信息, 这种崩溃你开启僵尸对象模式即可, 不过记住你正式发布的时候记得把这个勾取消, 不然会造成内存泄漏。...收集崩溃日志 获取崩溃信息方式 iOS中获取崩溃信息的方式有很多,比较常见的是使用友盟、云测、百度、Crashlytics等第三方分析工具,或者自己收集崩溃信息并上传公司服务器。...: 将崩溃信息持久化本地,下次程序启动,将崩溃信息作为日志发送给开发者。...iOS中, 收集Crash主要通过两种方式, 一种是信号量机制,因为crash通常会发出信号量,标明某某应用崩溃了, 另一种方式是每一个应用都有一个crash handle, 即崩溃钩子, 每当程序崩溃...当有崩溃发生,会给注册的邮件发送崩溃统计,方便查看。 crash信息收集, 如果正在进行debug调试,是收集不到信息的。

2.7K10

工具篇-统计Crash的工具Crashlytics使用指南

使用Crashlytics可以让你摆脱管理应用崩溃记录的烦恼,Crashlytics可以象Bug管理工具那样,管理这些崩溃日志。...图1上的B处你点击下载一个插件,运行应用并登录帐号。完全按照里面的步骤即可,特别的友好和详细。 ? ?...不过需要说的一点是:随着Fabric插件一步步把SDK集成到工程中的这种方式和 使用CocoPads集成的区别是 **使用 CocoPads集成需要在 info.plist文件中设置 API Key...image.png 由于崩溃都是在下次打开应用时上传的,所以程序出现崩溃,你需要再次打开一下APP才行。...使用真机时,需要拔掉连接线;使用模拟器,需要先通过点击Xcode的停止键,然后模拟器中通过点击应用图标后打开,Xcode运行模拟器的时候会阻止dSYM文件的上传。

2.4K10

Flutter 1.12 最新 hotfix 与 2020 路线计划

1、华为手机上崩溃 相信这个问题是 1.12 版本国内开发者最头痛的,出现崩溃的华为手机会抛出 Skia 异常的问题: Flutter engine crashes on some Android devices...其实跌过好几次跟头,从 PlatformView 的支持就出现无法输入的问题,还有华为删除输入文本出现崩溃(怎么又是华为?)...等等的异常,而这次主要是类似 #46159 :该问题主要是输入文本键盘被冻结了,或者输入的内容消除了。...同时 Flutter 今年也将继续努力,提高 Flutter 构建 macOS 桌面应用的可行性,Flutter 今年的目标是:应该能够 flutter create 和 flutter run 让程序可以浏览器...,macOS,Android,Fuchsia 和 iOS 上正常运行,并支持热重装、插件、测试和发布。

1.1K20

【老孟FlutterFlutter 2 新增的功能

这使开发人员能够防止null错误崩溃,这是应用程序崩溃的常见原因。通过将空检查合并到类型系统中,可以开发过程中捕获这些错误,从而防止生产崩溃。...当我们接近Flutter桌面的第一个完整的生产质量版本,我们知道我们还有更多工作要做,包括对与本机顶级菜单集成的支持,更像各个平台的体验的文本编辑以及可访问性支持,以及常规的错误修复和性能增强。...将Flutter和本机屏幕交织在一起使导航状态难以维护,并且视图级别集成多个Flutter会占用大量内存。 过去,其他Flutter实例的存储成本与第一个实例相同。...例如,摄像机和video_player插件之间,已合并了将近30个PR,以大大提高两者的质量。如果您以前使用这两种方法遇到麻烦,则应该再看一遍;我们认为您会发现它们更加强大。...图片发布 Sentry崩溃报告工具现在支持Flutter 借助Sentry的Flutter SDK,您可以实时收到Android,iOS或本机平台上发生的错误的通知。

7.8K20

关于Flutter 2.5稳定版你知道多少?

] 防止设置不支持的 FocusMode 崩溃 4151 [camera] 引入 camera_web package image_picker 插件 上也做了很多工作,专注于端到端的相机体验。...随着新的 Flutter 版本发布,之前由 Flutter 官方团队维护的插件现在 “交接” 给了 fluttercommunity.dev 组织,每个插件下方都会有下面类似的提示: 此外,由于这些插件不再积极维护...新版本的 DevTools 带有对 Widget Inspector 的更新,当你将鼠标悬停在 widget 上,可以评估对象、查看属性、widget 状态等等。...与之相关的一个新功能是你能够决定 FutureBuilder 是否应该重新抛出或隐藏错误 (#84308)。这应该会给你提供更多的异常,以帮助你追踪 Flutter 应用中的问题。...Pigeon 已经应用在 Flutter 团队的一些插件中。这个版本提供了更多有用的错误信息,增加了对泛型、原始数据类型作为参数和返回类型以及多参数的支持,未来它会被更广泛地使用。

3.6K20

Flutter 2.10更新详解

package 和插件已经⽀持 Windows。...最后,Flutter收到开发者们对于 Gradle 抛出让人费解的错误消息的反馈后,Flutter调整了 Flutter 命令行工具,现在它将 为常⻅问题提供解决方法。...例如,如果你向你的应⽤添加了一个插件,该插件需要您提⾼最低支持的 Android SDK 版本,你现在会在错误信息中看到「Flutter Fix」的建议。...Flutter将继续为常⻅错误消息添加更多解决方法的建议,并希望获得你对其他错误消息的反馈,这些错误消息将显著帮助开发者处理同类问题。...除此以外,Flutter还通过修复一些 边缘情况崩溃提⾼了 iOS 相机插件的稳定性。 最后,Flutter为 64 位架构的 iOS 系统加入减少内存使⽤的新功能:压缩指针。

1.6K30

浅谈第三方 SDK 和自定义 crash 上报冲突问题

简介 开发 iOS 应用,解决 Crash 问题始终是一个难题。...对于这两种 Crash 的捕获,精准高效的收集线上崩溃可以帮助我们更好的解决问题和提高用户体验,现在比较成熟的崩溃收集工具也比较多,比如:友盟统计,Crashlytics,腾讯的 bugly 等等。...uncaught_exception_handler); 不管是第三方还是自定义的上报收集工具,一般会常用注册 ExceptionHandler 的方式,来捕获 exception,但是并没有将异常进行抛出...解决方法 首先保存第三方的 ExceptionHandler,然后设置自己处理 exception 的 ExceptionHandler,自己的 ExceptionHandler 处理完异常之后,再将异常塞给之前的第三方...第三方上报收集工具捕获到异常,再处理完自己的逻辑后,将 exception 抛了出来,我们自己的崩溃日志收集库收到第三方上报收集工具抛出来的 exception,处理完自己的逻辑后再将 exception

1.8K20

Develop as One | 2021 Google 开发者大会主旨演讲精彩回顾

Web 也积极改进 API 兼容性以支持更多应用。...Firebase 让应用更稳定运行,确保出色的用户体验 Firebase Crashlytics 能够应用发布之后更快跟踪、分类和解决崩溃问题,特别对于游戏开发者,一系列新发布的 NDK 和 Unity...Flutter 适配多平台的解决方案,打造优异的用户体验 Flutter 始终坚持自我优化与更新,现已推出的 2.5 稳定版进一步提升了多平台体验。...Flutter 谷歌移动广告插件的稳定版正式发布: 同时支持 AdMob 和 Ad Manager,增添了开屏广告、自适应尺寸广告,广告中介等新功能,帮助 Flutter 开发者增加广告收益。...谷歌的产品设计中始终贯穿着平等与包容性的理念,让人人都能从中受益。

1.3K10

一起看 IO | Android 开发工具最新更新

当您编辑的文件与最近发生的崩溃相关,IDE 还会在编辑器中高亮代码行。这样会帮助您节省时间,通过将用户反馈的崩溃信息直接动态呈现在 IDE 里,您可以更好地专注于为用户提供最佳的应用体验。...开发中就及时更新已过期的依赖,从而避免当您的应用提交到 Play Console 遇到问题。...△ Google Play SDK 索引洞察 来自 Firebase Crashlytics 的应用质量洞察 - Android Studio 和本地源码中发现、探索并且解决 Crashlytics...该功能的集成有助于减少从崩溃到代码 (以及从代码到崩溃) 切换过程中的不顺畅,并且将每个崩溃所面临重要的上下文数据呈现给您,以此来辅助您在本地重现问题。...图片 △ 来自 Firebase Crashlytics 的应用质量洞察 大屏幕 可变尺寸模拟器 - 使用单个模拟器实例,快速具有代表性的参考设备之间切换从而测试不同的应用布局状态

9K40

Flutter Platform Channels(二)

Dart或Android方法调用处理程序中抛出的任何未捕获的异常都会被channel捕获,并记录,并将错误结果返回给调用者。 结果处理程序中抛出的未捕获异常会被记录。 信封编码。...Future成功的时候返回结果,发现错误的时候会出现PlatformException,没有实现对应方法的时候会抛出MissingPluginException异常。...此外,stream handler应该在程序处于非活跃状态暂停。 上面的代码提供了一个典型示例。...如果由于任何原因失败,则抛出适当的异常。从method call handler抛出,它将被记录下来,并将错误结果发送到Dart端。...现在,你可能希望在此类处理中包含来自Dart端的信息,但是一当主UI线程上的同步调用已经处于活动状态,开始发送异步消息就已经来不及了。

2.8K00

Google IO Extended | Flutter 游戏和全平台正式版支持下 Flutter 的现状

甚至官方的 ToolKit 里,还包含了如google_mobile_ads, in_app_purchase, audioplayers, crashlytics, 和games_services...而 Flutter 开发游戏和在传统 App 中不同的点主要在: 一般传统 App 通常屏幕视觉上是静态的,直到有来自用户的事件或交互才会发生变化; 对于游戏这一情况正好相反——UI 需要不断更新,游戏状态会不断发生变化...; 所以 I/O Pinball 中,游戏通过 loop 循环对球赛场上的位置和状态做出反应,例如球与物体发生碰撞或球脱离比赛,从而做出相应。...其实就是通过对组件进行排序和堆叠资源的层级,以此来以确定它们屏幕上的呈现位置,例如当球斜坡上发射,球的所在的层级顺序增加,因此它看起来斜坡的顶部。...可以帮助你多个平台上实现自动构建和定制化的发布 类似 leanflutter 等作者已经 Pub 发布了很多关于 PC 端能力拓展的插件,所以大家对于 PC 端支持的忧虑可以开始放下,尝试一些

1.2K40

Flutter技术与实战(6)

比如,当布局不合规范Flutter 就会自动弹出一个触目惊心的红色错误界面,如下所示。...下面的例子中,两个按钮的点击事件处理中分别抛出了同步和异步两类异常。...需要注意的是,Android Studio 提供的 Flutter 插件里展示的 FPS 信息,其实也来自于 onReportTimings 回调,所以我们注册回调需要保留原始回调引用,否则插件就读不到...之前的“提到生命周期,我们在说什么”,介绍 Widget 的生命周期,介绍过 Flutter 的帧回调机制。...比如,位于第 4 层的网络引擎中,会针对特定的错误码跳转到位于第 1 层的统一错误页,这时我们就可以利用 Router 提供的命名路由跳转,不感知错误页的实现情况下来完成。

2.7K10

Flutter之网络请求封装

,当 http 状态码非 200 开头 dio 会抛出 DioError 错误,但此时需要的错误信息为 response 中的错误信息,所以这里需要先解析 response 数据获取错误信息。...request 方法中添加 try-catch 包裹,并在 catch 中创建 ApiException ,调用 onError,当 onError 返回为 true 错误信息已被调用方处理,则不抛出异常...同时为 response 数据解析的方法也加上了抛出异常的处理。当业务异常抛出对应的业务异常信息。..., catch 中进行统一异常处理,当外部未处理异常则在 handleException 中进行统一处理,如 401 则跳转登录页,其他错误统一弹出错误提示。...同时对 block 包裹 try-catch 保证异常时取消 loading,并且 catch 中不做任何处理直接抛出异常。

7.2K11

Flutter 开发实战与前景展望 - RTC Dev Meetup

稳定性:Flutter 中大部分异常是不会引起应用崩溃 ,更多会在 Debug 上体现为红色错误堆栈,Release 上 UI 异常等等。...二、Flutter 实战 1、Dart 中有意思的一些东西 1.1、var 的语法糖和 dynamic var 的语法糖是赋值才自推导出类型的 ,而 dynamic 是动态声明,在运行时检测,它们的使用有时候容易出现错误...然后赋值的时候初始化为 String 类型,这时候进行 ++ 操作就会出现运行时报错, 如下图2如果在初始化指定类型的,那么编译就会告诉你错误了。...image19.png 2.2、InheritedWidget Flutter 中所有的状态共享都是通过它实现的,如自带的 Theme ,Localizations ,或者状态管理的 scoope_model...6、状态管理 scope_model 、flutter_redux、fish_redux 、甚至还有有 dva_flutter 等等,可以看出状态管理 flutter 中和前端十分相近。

1.9K20
领券