【发布时间】:2022-12-06 06:13:22
【问题描述】:
我开发了一个与外部数据库通信的应用程序。我最近开始在家工作。出于开发目的,数据库和 Android Studio 都在同一个工作站上,但访问必须通过 URL 完成,因此当应用程序投入生产时,唯一的变化是被访问的地址。
回到办公室,我的公司有一个 DNS 来为我们解析本地地址,所以我使用 Android 虚拟设备 (AVD) 的体验是无缝的。但是现在我在家,我需要在虚拟机上设置 /etc/hosts 文件(并且有问题的机器使用 Googles API,而不是 Google Play,否则这将永远行不通)。
按照 this awesome thread 上的步骤,我可以使用以下步骤(Linux 系统)通过命令行毫无问题地进行设置:
在具有可写权限的
tools文件夹上启动模拟器
- 工具/仿真器-avd <avdname> -writable-system
使用
adb重新挂载文件系统并将准备好的hosts文件推送到位
- 平台工具/adb root
- 平台工具/adb 重新安装
- platform-tools/adb push <local>/hosts /etc/hosts
这会在需要的位置获取
hosts文件,通过 Android Studio 我可以确认该文件已通过文件资源管理器进行编辑,从这一点开始,开发再次无缝进行。但是,当我关闭并重新启动同一个虚拟机时,现在使用 Android Studio 的设备管理器播放按钮,
hosts文件重置为它之前在 AVD 上的内容。此外,文件系统不再是可写的。结果,我总是不得不通过命令行启动 AVD。我想知道是否有解决方案:
- 将新的
hosts文件永久保存在该特定机器上,这样当 Android Studio 以他的方式启动时,配置已经存在;或者- 以某种方式将
-writable-system标志设置为 Android Studio 自己的播放按钮命令,因此我在hosts文件中所做的更改再次出现。我提前感谢任何想法。
【问题讨论】:
-
要从 issuetracker.google.com/issues/135857816#comment8 添加一些上下文:“如果您使用 [
-writable-system] 标志保存快照,然后在没有该标志的情况下启动模拟器,它将无法加载快照。”。
标签: android-studio virtual-machine hosts