"Hot reload on save" 无法在我的 Android Studio 3.5.3 上运行

"Hot reload on save" not working on my Android Studio 3.5.3

我有一个从 Android Studio 创建的 flutter 项目。但是,当我进行一些更改并点击 Ctrl + S 进行保存时,Hot reload 无法正常工作,即使我已经从首选项中选中了复选框 Hot Reload on Save。但是,这以前工作正常。在搞砸的事情之间,现在不是了。现在我看到当我 运行 项目时 Android Studio 菜单上的 yellow lightening icon for hot reload 本身保持禁用状态。

下面是来自我的 运行 控制台的日志:

Launching lib\main.dart on Redmi 8 in debug mode...
Running Gradle task 'assembleDebug'...
√ Built build\app\outputs\apk\debug\app-debug.apk.
Installing build\app\outputs\apk\app.apk...
This is taking longer than expected...

这里是 flutter doctor 总结:

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.12.13+hotfix.7, on Microsoft Windows [Version 10.0.14393], locale en-US)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.1)
[√] Android Studio (version 3.5)
[√] Proxy Configuration
[√] Connected device (1 available)

• 未发现问题!

有没有人遇到过这个问题?有什么解决办法吗?

我终于修好了。问题出在代理设置上。我在我的机器上将环境变量 NO_PROXY 设置为 127.0.0.1;localhost 而不是 127.0.0.1,localhost (注意分号而不是逗号)。带有分号的本地主机地址似乎是 flutter SDK 无法理解为有效 NO_PROXY 地址的值,这导致了我的问题。一旦我将 semi-colon 更改为 coma,它就像一个魅力。

我是怎么算出来的?

从我的 运行 控制台我可以看到它说 This is taking longer than expected... 这似乎是异常的并且几乎没有 google 搜索我发现这已经是一个众所周知的问题并且人们已经修复了它。参见 this github forum question。建议使用逗号而不是分号来保存代理地址。就是这样。

这对我有用,在我做了一些更改之后,在更改代码后保存时没有任何反映:

ctrl + s保存。然后按 r 进行热重载,以使更改反映在模拟器上。

在 Flutter 中,r 告诉 Dart 虚拟机 recompilereload 然后 reassembly.