自动热重启和重新加载停止发生 - Flutter/VS Code

Posted

技术标签:

【中文标题】自动热重启和重新加载停止发生 - Flutter/VS Code【英文标题】:Automatic Hot Restart and Reload Stopped Occurring - Flutter/VS Code 【发布时间】:2021-05-07 00:16:50 【问题描述】:

我一直在 VS Code 上学习 Dart/Flutter,并且热重启/重新加载始终是自动的(如果我更改了代码中的颜色,它会自动显示在屏幕上)。我现在必须手动触发动作。我不知道发生了什么变化。

我正在使用 VS Code 和 ios 模拟器。我无法在 android Studio 上正确运行 SDK,因为我使用的是新的 mac M1 处理器。

我尝试过的解决方案:

    打开其他Flutter项目,验证热重启不是 处理其中任何一个(它不像其他帖子所建议的那样是导入错误) 我确保我可以从 VSCode 和终端手动热重启以查看更改 Flutter Doctor 没有显示错误 我还是从终端运行了 Flutter Upgrade 我从 VS Code 卸载并重新安装了 Dart 和 Flutter 我确保 VS Code 的自动保存功能已开启 我确保 VS Code 的“Dart: Flutter Hot Reload on Save”(和重新启动)都被选中 我尝试在有和没有调试的情况下运行 我重新启动了计算机和 VS Code

编辑:我刚刚安装了 Android Studio,也无法在此处获得自动热重载。我将它连接到iOS模拟器,空闲2秒后打开自动保存,仍然需要手动重新加载。或者,我可以转到菜单并单击“全部保存”,它将重新加载以更新 UI(无需单击热重新加载或重新启动图标)。但是,它仍然是手动的。

编辑:2/25/21:在 v3.20.0 测试版中引入了“修复”。 https://dartcode.org/releases/v3-20/

【问题讨论】:

【参考方案1】:

好的,我终于找到了正确的答案。

显然,IDE 自动保存后的自动热重载是一个错误,一些用户认为这是一个有用的功能。预期的功能是仅在手动激活时触发热重载。因此,该错误(功能)被“修复”了,从而取消了此功能。

反馈表明,有些人发现该错误很有用,现在有迹象表明该功能将在未来返回。

https://github.com/Dart-Code/Dart-Code/issues/3110

编辑:2/25/21:在 v3.20.0 测试版中引入了“修复”。 https://dartcode.org/releases/v3-20/

【讨论】:

【参考方案2】:

VSCode 有时会出现问题,而这个问题可以说是最烦人的。上周,当我决定使用带有 flutter web 的桶文件时,我遇到了这种情况。

意思是,我有一个包含所有导出组件的文件夹,然后只导入那个文件,就像这样

然后,无论我想要所有这些文件在哪里,我都会添加

import barrell.dart

现在,当我在移动设备上使用 Flutter 时,这工作得非常好,而且当我进入 Flutter Web 时,我的应用程序不会热重载。

我和你分享这个是说我发现了这个通过消除过程。花了我一点时间,但我从下往上创建了一个新项目,添加到每个部分一个一个,然后我发现是这个barrel文件搞砸了热重载..

所以我最好的建议是做同样的事情 - 从一个新项目重新开始,一个接一个地添加,如果你确实找到了导致挂断的原因,我恳请你在这里分享: https://github.com/flutter/flutter/issues

【讨论】:

感谢 Gene,非常注重细节的方法。但是,如果我创建一个全新的项目然后只是更改标题,我将无法自动热重启以在模拟器上进行更新。这是我过去的所有项目,而不仅仅是我发现它停止时正在处理的项目。 那我误会了!好的,你是如何运行这个项目的?颤振运行?带调试? 我尝试过调试和不调试。我从 VS Code 运行它。我也刚刚更新了帖子。奇怪的是,我在 Android Studio 中遇到了同样的问题。 保存时是否热重载? 在 VS Code 和 Android Studio 上,它会在手动保存时进行热重载。当任一软件由于一段时间不活动而自动保存时,它不会进行热重载。

以上是关于自动热重启和重新加载停止发生 - Flutter/VS Code的主要内容,如果未能解决你的问题,请参考以下文章

调试时 Flutter VS Code 中的热重启(以前是完全重启)

FlutterFlutter 混合开发 ( 混合开发中 Flutter 的 热重启 / 热加载 )

Flutter“不能热加载(hot reload),热重载按钮灰色且无法点击”的解决方案

Spring Boot 热部署

Spring Boot 热部署(转)

Flutter 正在执行热重启而不是热重载 [Ubuntu]