【问题标题】:Run Android Virtual Machine through Android Studio with edited hosts file or -writable-system flag使用编辑的主机文件或 -writable-system 标志通过 Android Studio 运行 Android 虚拟机
【发布时间】:2022-12-06 06:13:22
【问题描述】:

我开发了一个与外部数据库通信的应用程序。我最近开始在家工作。出于开发目的,数据库和 Android Studio 都在同一个工作站上,但访问必须通过 URL 完成,因此当应用程序投入生产时,唯一的变化是被访问的地址。

回到办公室,我的公司有一个 DNS 来为我们解析本地地址,所以我使用 Android 虚拟设备 (AVD) 的体验是无缝的。但是现在我在家,我需要在虚拟机上设置 /etc/hosts 文件(并且有问题的机器使用 Googles API,而不是 Google Play,否则这将永远行不通)。

按照 this awesome thread 上的步骤,我可以使用以下步骤(Linux 系统)通过命令行毫无问题地进行设置:

在具有可写权限的tools 文件夹上启动模拟器

  1. 工具/仿真器-avd <avdname> -writable-system

    使用 adb 重新挂载文件系统并将准备好的 hosts 文件推送到位

    1. 平台工具/adb root
    2. 平台工具/adb 重新安装
    3. platform-tools/adb push <local>/hosts /etc/hosts

    这会在需要的位置获取 hosts 文件,通过 Android Studio 我可以确认该文件已通过文件资源管理器进行编辑,从这一点开始,开发再次无缝进行。

    但是,当我关闭并重新启动同一个虚拟机时,现在使用 Android Studio 的设备管理器播放按钮,hosts 文件重置为它之前在 AVD 上的内容。此外,文件系统不再是可写的。结果,我总是不得不通过命令行启动 AVD。

    我想知道是否有解决方案:

    • 将新的 hosts 文件永久保存在该特定机器上,这样当 Android Studio 以他的方式启动时,配置已经存在;或者
    • 以某种方式将 -writable-system 标志设置为 Android Studio 自己的播放按钮命令,因此我在 hosts 文件中所做的更改再次出现。

    我提前感谢任何想法。

【问题讨论】:

标签: android-studio virtual-machine hosts


【解决方案1】:

您可以将 studio.emu.params 设置为 -writable-system

在 Windows 上类似于 set studio.emu.params=-writable-system,在 MacOS 上类似于 launchctl setenv studio.emu.params -writable-system

相关:https://stackoverflow.com/a/64696876/2924547

【讨论】:

    猜你喜欢
    • 2013-09-23
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    • 2012-04-25
    相关资源
    最近更新 更多