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
变量,它需要完全重启,因为const
s在编译时被初始化了
不是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 集成测试运行/调试配置