如何在 Flutter 中报告静默崩溃
How to report Silent Crashes in Flutter
我们的应用程序使用 Firebase Crashlytics 和 Sentry 来跟踪所有崩溃。我们已经用崩溃处理覆盖了我们所有的 dart 代码,但注意到在某些情况下崩溃来自本机代码,这意味着它们不会被我们的捕获器捕获。
例如,我们最近遇到了一个问题,我们的一张图片意外以非常高分辨率发布,导致内存问题和应用程序崩溃,但没有任何报告。
由于用户的反馈以及它很容易重现这一事实,我们能够了解并修复它,但我们宁愿对此类崩溃进行某种形式的报告。
您尝试过捕获 NDK 崩溃吗? Crashlytics 支持它
Firebase Crashlytics 也可以发现这些错误。
按照包设置指南中的所有步骤进行操作。
https://pub.dev/packages/firebase_crashlytics
引用指南
用 Crashlytics.instance.recordFlutterError
覆盖 FlutterError.onError
将自动捕获从 Flutter 框架内抛出的所有错误。
如果你想捕获发生在runZoned
的错误,你可以提供Crashlytics.instance.recordError
到onError参数:
runZoned<Future<void>>(() async {
// ...
}, onError: Crashlytics.instance.recordError);
我们的应用程序使用 Firebase Crashlytics 和 Sentry 来跟踪所有崩溃。我们已经用崩溃处理覆盖了我们所有的 dart 代码,但注意到在某些情况下崩溃来自本机代码,这意味着它们不会被我们的捕获器捕获。
例如,我们最近遇到了一个问题,我们的一张图片意外以非常高分辨率发布,导致内存问题和应用程序崩溃,但没有任何报告。
由于用户的反馈以及它很容易重现这一事实,我们能够了解并修复它,但我们宁愿对此类崩溃进行某种形式的报告。
您尝试过捕获 NDK 崩溃吗? Crashlytics 支持它
Firebase Crashlytics 也可以发现这些错误。 按照包设置指南中的所有步骤进行操作。 https://pub.dev/packages/firebase_crashlytics
引用指南
用 Crashlytics.instance.recordFlutterError
覆盖 FlutterError.onError
将自动捕获从 Flutter 框架内抛出的所有错误。
如果你想捕获发生在runZoned
的错误,你可以提供Crashlytics.instance.recordError
到onError参数:
runZoned<Future<void>>(() async {
// ...
}, onError: Crashlytics.instance.recordError);