1

在 Android Studio 中结束调试/运行会话和/或从计算机上拔下我的手机并重新启动应用程序后,本地安装的应用程序似乎没有保存最后一次热重载的更改。

我注意到了几次,并决定通过一个简单的页面来运行一个实验,并Text在单独的热重载中引入几个简单的小部件(由我按 Ctrl+S 触发),实际上在重新启动应用程序后(在拔掉电源后)只有这两个Text小部件中的第一个出现,表明确实上次热重载的更改已经丢失。

我不确定这是设计使然,还是我的开发环境中的某些东西不起作用。

无论哪种方式,我都希望能够轻松拔掉插头并保留最后的更改,以便当我与远离我的计算机的其他开发人员讨论我的最新更改时,我们可以查看最新更改。

PS我知道我可以在每个开发会话结束时引入一个虚拟更改并拔下电源,以便所有实际更改都保留下来,但我想知道是否还有比添加垃圾代码更优雅的解决方案。

4

1 回答 1

1

热重载通过将您的最新更改上传到可调试进程来工作。源代码被编译成内核文件并发送到移动设备的 Dart VM。但是它们被加载到内存中。当您断开调试过程并终止您的应用程序时,再次打开后,它将从磁盘中的最后一个真实编译加载库。

应用更改并将它们同时保存在内存和磁盘中实际上会使整个过程的效率大大降低,并且目前不可用,不幸的是。

如果您想在不重新编译的情况下运行您的应用程序,您可以:

  1. 连接您的设备
  2. 打开您的应用程序的旧安装版本
  3. 在 IDE 上,您单击带有箭头的小错误图标(参见屏幕截图)(或按两次 shift 然后键入“将调试器附加到 Android 进程”)
  4. 点击确定

请注意:如果您更改了本机代码,此方法将无法正常工作,例如安装通过平台通道添加功能的第三方库将需要您重新编译应用程序。

指向带有箭头的调试图标的图像

希望这可以帮助。VSCode 上也有同样的事情。

在以下位置查看更多信息:https ://docs.flutter.dev/development/tools/hot-reload

于 2021-12-06T20:27:32.007 回答