【问题标题】:Using System Hosts file for Android Emulators为 Android 模拟器使用系统主机文件
【发布时间】:2013-08-01 13:15:07
【问题描述】:

我在 Android 模拟器中使用系统主机文件详细信息时遇到问题。 我将我的网站 (www.example.com) 部署在 Web 服务器中。 我正在尝试从我的桌面访问模拟器中的那些网站。 我的桌面有一个 hosts 文件,其条目为

10.xx.xx.xx www.example.com

我正在尝试从 android 模拟器 - 浏览器访问 www.example.com,但它无法正常工作。

我参考了下面的网站,但大多数网站都说如果网站部署在同一台服务器上,如何使用 hosts 文件。

http://sadhanasiblog.blogspot.in/2012/07/local-environment-setup-for-android.html

如果有人有答案,请告诉我。提前致谢。

-森希尔

【问题讨论】:

标签: android emulation hosts


【解决方案1】:

使用最新的 Android 工作室和工具。您现在可以按照此说明使用。每个模拟器只需要运行一次。

  1. 使用以下命令启动模拟器。此命令位于您的 [sdk 文件夹]/tools 目录下

    emulator @[emulator name] -writable-system
    
  2. 打开另一个命令提示符,然后将目录切换到 [sdk 文件夹]/platform-tools 并运行以下命令

    adb root
    adb remount
    adb shell
    echo '10.0.2.2 [localserver dns name]'>>/etc/hosts        -- example echo '10.0.2.2 xxxx.com'>>/etc/hosts
    

【讨论】:

  • -writable-system 是您在其他任何地方都找不到的最重要的部分
  • 我认为还剩下一步,通过执行以下命令重新启动设备以应用这些更改:ad​​b reboot
  • 这仅适用于没有 Play 商店的模拟器。否则 adb root 失败。
【解决方案2】:

要检查的重要一点是,如果您在 Windows 或 MacOS 机器上创建 HOSTS 文件,HOSTS 文件是否包含 linux 行结尾 ('\n', LF, #10, #0x0A )。如果 HOSTS 文件包含 Windows 的 2 字符行尾('\r\n'、CRLF、#13#10、#0x0D0A)或 MacOS 样式的行尾('\r'、CR、#13、 #0x0D)。

除了字母/数字/点(用于 IP 和主机名)外,文件应仅包含字符 0x20(空格)、0x09(制表符)和 0x0A(新行)。

【讨论】:

  • 谢谢!我花了一天的时间试图弄清楚这一点,直到我终于找到了这篇很棒的帖子!
【解决方案3】:

要访问您的本地主机,IP 是

10.0.2.2 主机环回接口的特殊别名(即开发机器上的 127.0.0.1)

来自 Android 文档:

在启动时,模拟器会读取您的系统当前正在使用的 DNS 服务器列表。然后,它会在此列表中存储最多四台服务器的 IP 地址,并根据需要在模拟地址 10.0.2.3、10.0.2.4、10.0.2.5 和 10.0.2.6 上为它们设置别名。

在 Linux 和 OS X 上,模拟器通过解析文件 /etc/resolv.conf 来获取 DNS 服务器地址。在 Windows 上,模拟器通过调用 GetNetworkParams() API 来获取地址。请注意,这通常意味着模拟器会忽略“主机”文件的内容(Linux/OS X 上的 /etc/hosts,Windows 上的 %WINDOWS%/system32/HOSTS)。

在命令行启动模拟器时,您还可以使用 -dns-server 选项手动指定要使用的 DNS 服务器的地址,其中是逗号分隔的服务器名称或 IP 地址列表。如果您在模拟网络中遇到 DNS 解析问题(例如,使用 Web 浏览器时出现“未知主机错误”消息),您可能会发现此选项很有用。

在您的控制台使用:

emulator -avd <you_avd_name> -dns-server <serverList>

当我必须在同一台 PC 上连接到带有 linux 发行版的 VirtualBox 时,我使用它,它可以从模拟器 webview http://10.0.2.3/servlet-name 工作。

Reference: Emulator Networking

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多