我有一个 flutter Web 应用程序(使用
flutter build web
创建),当我运行它时,我得到以下堆栈跟踪。有没有办法将此堆栈跟踪转换为 dart 文件中的原始行?我注意到有一个 main.dart.js.map 但我不确定这在这里是否有帮助。
我运行我的应用程序
runZonedGuarded(() async {
WidgetsFlutterBinding.ensureInitialized();
FlutterError.onError = (FlutterErrorDetails errorDetails) {
debugPrint("Flutter error 1 ${errorDetails.exception.toString()}/${errorDetails.stack}");
};
runApp(MyApp());
}, (error, stackTrace) {
debugPrint("Flutter error 2 ${error.toString()}/$stackTrace");
});
我看到以下异常。
Flutter error 2 Null check operator used on a null value/TypeError: Cannot read properties of null (reading 'fb')
main.dart.js:45362 at aqp.J (https://.../main.dart.js:122481:8)
main.dart.js:45362 at bk2.$1 (https://.../main.dart.js:75144:3)
main.dart.js:45362 at Object.bpJ (https://.../main.dart.js:7334:19)
...
首先,您是否使用
--source-maps
标志构建应用程序?
其次,错误“对空值使用空检查运算符”与您在源代码中使用
!
运算符指示 en 变量从不为空这一事实相关。
因此,检查应用程序中使用的
!
运算符,其中一个用于 null 变量。
一般来说,在没有进行空检查测试之前不要使用这些 this 运算符。
像这样:
if (myitem != null) {
var a = myitem!.foo;
}