我有一个非常基本的测试应用程序:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
print("ROOT WIDGET ");
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Container(decoration: BoxDecoration(color: Colors.blue),),
);
}
}
日志输出调试:
以调试模式在iPhone X上启动lib / main.dart ...
找到已保存的证书选择“ XXX”。要清除,请使用“ flutter config”。 使用开发人员身份“ XXX”对iOS应用进行签名以进行设备部署
正在运行Xcode构建...
Xcode构建完成。 39,4秒
安装和启动...
颤抖:ROOT WIDGET
正在将文件同步到设备iPhone X ...
颤抖:ROOT WIDGET
使用flutter run --release
在发布模式下在iPhone X上启动lib / main.dart ...
找到已保存的证书选择“ XXX”。要清除,请使用“ flutter config”。
使用开发者身份“ XXX”为设备部署签署iOS应用
正在运行pod安装...
1,2秒正在运行Xcode构建...
├─构建Dart代码... 15,8s├─正在生成dSYM文件... 0.1秒
├─剥离调试符号... 0,0s
├─组装Flutter资源... 0.7秒
└─编译,链接和签名... 48,3s
Xcode构建完成。 67,4秒
安装和启动...
6,8秒要退出,请按“ q”。
颤抖:ROOT WIDGET
如您所见,它仅在调试模式下发生。
我问的原因是,在我的真实应用中,我使用了WebView
。 onWebViewCreated(WebViewController controller)
的函数WebView
仅是第一次调用,因此WebViewController
在调试模式下始终为空。
答案 0 :(得分:2)
我一直在遇到这个问题
Flutter 1.22.0•通道稳定
从模拟器/物理电话中删除应用程序并重新安装可解决此问题。从模拟器/实体中的“系统设置/应用”中删除该应用,然后以调试模式重新安装。
我不知道为什么,但是我的主窗口小部件会不时地继续进行两次准确的重建,并且我在主窗口小部件中没有做任何事情,没有SetStates或没有futurebuilder。我认为这是一个不稳定的内部错误。
答案 1 :(得分:0)
线索可能在这里
Installing and launching... //We are launching the app , the code bundled with it it's executed briefly before it "sync" to allow hot reload
flutter: ROOT WIDGET //The bundled code executes
Syncing files to device iPhone X... //We start the sync, hot reload triggers an app rebuild
flutter: ROOT WIDGET //The live code executes
如果您对打印进行注释,然后进行热重装,然后取消注释打印,则您应该只会看到一个“ ROOT WIDGET”。
答案 2 :(得分:-2)
我有同样的问题,我发现这不是 flutter 的问题,而是 vscode
。
尝试在 android studio
中运行。