我正在尝试在Flutter项目中使用firebase_crashlytics lib,问题是Flutter从不崩溃,我可以在代码中抛出异常,但是dart中的所有异常都被视为非致命异常。这些将正常报告给控制台,但我希望Flutter,本机和未处理的异常被视为致命异常。
我想要以下之一:
我的main.dart代码:
Future main() async {
runZoned<Future<void>>(() async {
await DotEnv().load('.env');
setupNotifications();
FlutterError.onError = Crashlytics.instance.recordFlutterError;
runApp(MyApp());
}, onError: Crashlytics.instance.recordError);
}
我已经尝试做的事情:
SystemChannels.platform.invokeMethod('SystemNavigator.pop');
可行,但实际上并不友好MethodChannel
试图使应用程序崩溃的kotlin函数无效,我可能会做的事情:
toast
通知用户出现问题至少现在,您所看到的行为是Flutter上Crashlytics的默认行为。如果您想退出您的应用,我可以向您推荐以下选项:
导航至错误屏幕,显示使用Navigator.pushAndRemoveUntil()
的一般错误消息。然后,当用户单击OK
或计时器后,您将退出该应用程序。为了退出该应用程序,您可以在本机端抛出异常并使用SystemChannels.platform.invokeMethod('SystemNavigator.pop');
,尽管您的应用程序可能会在App Store中被阻止,因为Apple会以编程方式拒绝退出。
请谨慎操作,并带有友好的错误消息,为每个可能的错误做好准备,因此用户不必退出应用程序。