有没有办法禁用Flutter的“红色死亡屏幕”? 我不介意在调试过程中使用它,但是它似乎也出现在生产版本中-而且我找不到有关如何禁用它或自己捕获错误的任何信息。
我尝试使用FlutterError.onError
和runZoned(onError)
捕获流浪错误,但是都没有阻止红屏出现。
作为参考,我正在谈论此屏幕:
答案 0 :(得分:0)
您可以重写ErrorWidget.builder方法。
・示例代码。
ErrorWidgetBuilder.builder = (FlutterErrorDetails details) => Container();
・默认代码
ErrorWidgetBuilder.builder = (FlutterErrorDetails details) => ErrorWidget(details.exception);
希望它能为您提供帮助。
答案 1 :(得分:0)
您可以尝试使用Catcher,这是一个免费的flutter插件,可以捕获和处理Flutter应用程序中的错误。 Catcher提供了多种报告模式和处理程序,可与Flutter应用程序配合使用
只需在您的pubspec.yaml中添加捕手
麦田守望者》:^ 0.1.2
答案 2 :(得分:0)
void main() {
bool isDev = true;
ErrorWidget.builder = (FlutterErrorDetails errorDetails) {
return AppErrorWidget(
errorDetails: errorDetails,
isDev: isDev,
);
};
}
class AppErrorWidget extends StatelessWidget {
final FlutterErrorDetails errorDetails;
final bool isDev;
const AppErrorWidget({
Key key,
@required this.errorDetails,
this.isDev = false,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Material(
child: SafeArea(
child: Container(
decoration: BoxDecoration(border: Border.all(color: Colors.red)),
child: ListView(
children: <Widget>[
Container(
height: 20,
),
Text(isDev ? errorDetails.toString() : '')
],
),
),
),
);
}
}