我无法从Flutter Web应用获取任何错误输出。正在使用打印到主机
print('some text');
工作正常,但不会打印错误。例如,引发异常
throw new Exception('testexception');
不会在浏览器控制台和IntelliJ中产生任何输出。Chrome中的日志级别设置为[Info, Warnings, Errors]
。
我甚至尝试实现一个自定义错误处理程序
void main(){
FlutterError.onError = (FlutterErrorDetails details) {
print('main.onError: details: ${details.toString()}');
};
runApp(new MyApp());
}
但是运气不好。我必须在某个地方启用错误输出吗?我在文档中找不到任何关于这个的信息。
我尝试使用Dart Dev Server
(从IntelliJ使用Run
时启动)以及从终端调用webdev serve
和webdev serve --auto restart
来运行应用程序。
4条答案
按热度按时间lp0sw83n1#
Flutter Web目前没有调试方法。将生成一个
main.dart.js
,您可以使用Chrome控制台调试它。***“调试”***Web App的一个很酷的技巧是在浏览器上显示一个弹出窗口:
uubf1zoe2#
你看过这个问题是不是已知的吗?Flutter-web只是开发者预览版。如果没有当前的问题,创建一个,并提供一个最小的“如何重现”。我相信Flutter-web团队会很感激的。
tzxcd3kk3#
我尝试了两个IDE和它在Intellij中的正确工作,但没有在VSCode中。它显示白色黑屏给予它尝试再次运行
flutter run -d chrome
,并在黑屏中等待2分钟。并检查SDK中的flutter路径的可视化代码是否正确。
5w9g7ksd4#
在JavaScript中,
console.log
方法用于输出到Web浏览器的JavaScript控制台。因此,您可以从Dart获取JavaScript * console * 对象并在其上调用该方法。
由于
dart:js
仅支持编译为JavaScript的Dart,这意味着使用它的Flutter应用将只能作为Flutter Web应用使用。导入它将意味着代码将无法用于面向iOS、Android等的应用。提示:JavaScript * console * 对象还有其他可调用的方法。请使用
info
、warn
和error
,而不要使用log
。最后两个方法出现在控制台中时会突出显示相应的条目。