Flutter的VSCode热重载不起作用

Mic*_*nan 5 visual-studio-code flutter

我现在正在使用VSCode,当热重装刚刚停止工作时,就在我的开发应用程序上,正在开发中。我完全不知道为什么会发生这种情况,过去我对此完全没有疑问。如果对任何人都有用,那么我正在开发应用程序的第二页,您可以通过第一页上的路线访问该页面。这就是为什么热装不起作用的原因吗?如果不是,那么有人可以告诉我为什么它不起作用吗?这确实很烦人,并且阻碍了我的应用程序的进度。谢谢!

重新启动计算机,然后重新启动调试。我在运行macOS Mojave版本10.14.2的Macbook Pro 2015上运行,如果有帮助的话。

实际上没有任何代码可显示,它与代码无关。是VSCode或Flutter。

我希望热重装能够正常工作,但事实并非如此。

THE*_*IUM 21

如果您使用 f5 启动应用程序或从 debug 的下拉列表中选择开始调试,则热重载不起作用。

但是,如果您使用 Ctrl+f5 启动您的应用程序或从 debug 的下拉列表中选择 start without debugging 。

要解决此问题,请先使用 Shift+f5 关闭正在运行的调试会话。

然后单击菜单栏中的调试。单击开始而不进行调试。

不调试就开始

现在热重载工作得很好。

You can do the hot reload also using terminal. Just type: flutter run in the terminal and the app will be launched.

just press r in the terminal and hot reload will be initialized.

  • 2021年这不再起作用了 (6认同)
  • 2022 年 2 月不再工作 (3认同)

小智 8

我注意到如果你runApp直接传入MaterialApp. 如果创建了单独的核心小部件,则一切正常。

工作示例:

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Hot reload works!!')),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

不工作:

void main() => runApp(MaterialApp(
  home: Scaffold(
    appBar: AppBar(title: Text('Hot reload not working')),
  ),
));
Run Code Online (Sandbox Code Playgroud)

也不要忘记在保存时启用热重载:https : //stackoverflow.com/a/67132314/4990406


小智 8

这里引用sidnas的回答

我注意到,如果您在 runApp 中直接传入 MaterialApp,则热重载将不起作用。如果创建了单独的核心小部件,则一切正常。

工作示例:

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Hot reload works!!')),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

不工作:

void main() => runApp(MaterialApp(
  home: Scaffold(
    appBar: AppBar(title: Text('Hot reload not working')),
  ),
));
Run Code Online (Sandbox Code Playgroud)

第二个片段阻止热重载工作的原因是因为“main”仅运行一次并且热重载不运行main。因此,要使其正常工作,您必须将 MaterialApp 分离到不同的小部件。

  • 感谢您明确说明为什么它不起作用。 (3认同)

小智 7

如果您仍然面临这个问题

打开VS代码然后转到:

  • 文件 > 首选项 > 设置
  • 在搜索字段中输入“热重载”
  • 你会看到“Flutter Hot Reload On Save”和三个选项
  • 默认为“手动”,因此将其更改为“始终”

  • 2021 年不起作用 (3认同)

lol*_*nin 6

对于我使用最新的 VS studio 来说,按 CRTL+s 可以很好地进行热重载。有点像其他 IDE 的习惯。


小智 6

对于 VS Code 转到 File>Autosave 确保您“检查”了 Autosave。

  • 2021 年,天哪,不工作了 (2认同)

小智 -1

对于你的项目可能出现的 flutter热重载 问题,是你的设备

的问题,而不是flutter或者Android Studio你的logcat挂掉的 时候出现的这种情况。 您可能想要增加缓冲区大小。 为此,请进入您的设备模拟器设置 > 开发人员选项确保它们已打开), 将缓冲区大小更改为更大的数字。 然后再次 运行flutter run -v