Android Studio 中的 Flutter App 不会通过热重载或热重启在虚拟设备上更新

Posted

技术标签:

【中文标题】Android Studio 中的 Flutter App 不会通过热重载或热重启在虚拟设备上更新【英文标题】:Flutter App in Android Studio doesn't get updated on virtual device by hot reload or hot restart 【发布时间】:2021-03-21 07:08:05 【问题描述】:

我有一个 Flutter 应用程序,我正在 Windows 10 机器上的 android Studio 中开发。Android Studio 和 Flutter SDK 是最新的稳定版本。

我正在运行 Pixel 2 手机作为 AVD 来测试应用程序,但突然热重载和热重启将不再更新应用程序。

例如,如果我更改浮动操作按钮的图标,该图标通常会在热重载或热重启后更改。 现在更改仅在我冷重启后可见。

似乎热重启/热重载不会更新虚拟设备上的应用程序。

我尝试从控制台运行热重载,但这也不起作用。 我重置了 AVD,创建了一个新的,甚至删除并重新安装了 Anroid Studio。没有效果。 应用在冷重启之前不会改变。

有没有办法恢复以前的行为?

编辑:

我找到了问题的诱因,但还没有找到原因或解决方案。 这似乎是一个重构问题。 在旧版本的代码中,热重载/重启没有问题。在开发过程中,我将一个 dart 文件移到了一个新的子目录中。从 /lib/app 到 /lib/app/home 并让 Android Studio 将源代码中的所有引用调整到此文件。之后,可以编译并启动应用程序,但热重载/重启不再起作用。 作为一种解决方法,我现在复制了文件而不是移动它并删除了旧文件,但我仍然想知道究竟是什么问题。

【问题讨论】:

如果你改变了const变量,它需要完全重启,因为consts在编译时被初始化了 不是const变量,是脚手架appbar的标题文本或者脚手架浮动动作按钮的图标 【参考方案1】:

您是否尝试过在您的 Flutter 项目中运行“flutter clean”?

【讨论】:

试过了,还是没有效果。模拟器上的应用只在冷重启后更新,而在热重载或热重启后没有变化。 您是否尝试过使用其他 AVD,例如 Pixel 3 或 Pixel 3a? 是的,我试过 Pixel 1 和 Nexus 6。同样的问题。可能是重构问题,请参阅我的编辑。

以上是关于Android Studio 中的 Flutter App 不会通过热重载或热重启在虚拟设备上更新的主要内容,如果未能解决你的问题,请参考以下文章

“flutter doctor”命令找不到安装在 Android Studio 中的 Flutter 和 Dart 插件

在 Android Studio 中的 Flutter 上运行模拟器时出错

Flutter 中的 Getter/Setter 使用 Android Studio

Android Studio 中的 Flutter 集成测试运行/调试配置

运行flutter应用程序时android studio中的gradle错误

Flutter:未连接到 Android Studio 中的 IOS 模拟器