宿主文件在模拟器中的Url映射被忽略

我正在使用genymotion模拟器,并从它拉的主机文件使用

adb remount

adb pull / system / etc / hosts C:\ Users \ Rkn09 \ Desktop \ hosts

我添加了像192.168.0.115 xxx.mydomain.com新的映射,我把它推回到模拟器使用

adb push C:\ Users \ Rkn09 \ Desktop \ hosts / system / etc / hosts

但是当我向xxx.mydomain.com发出请求时,它不会redirect到LAN 192.168.0.115中的本地计算机。 我甚至使用猫/ etc / hosts检查hosts文件,它有我的映射,任何人都可以帮助我解决这个问题。

PS:同样的过程在Mac OS X EI Captain中很好,我在windows7中遇到了这个问题

Related of "宿主文件在模拟器中的Url映射被忽略"

我有同样的问题。 以下解决它:

  • 确保主机文件的最后一个input后有一个空行
  • 如果您使用主机文件中的选项卡,请将其replace为空格

重新启动Android,然后重试:

adb reboot 

hosts文件应该已经写成使用linux线结束风格。

记事本以及写字板是不可能的。 尝试安装另一个支持此function的编辑器,并确保您正确保存了hosts文件。

(我尝试过AkelPad,但Nodepad ++也提供了相同的function)

据推测,不pipe编码是什么。 Windows-1252 (ANSI)utf-8工作。

完成所有更改后,将hosts文件推送到设备:

 adb remount adb push hosts /system/etc/hosts 

确保你有正确的hosts文件,它被加载,无论是否工作:

 adb shell cat /system/etc/hosts adb shell ping my.domain.com 

从Genymotion设备打开浏览器,并确保一切正常,input:

 http://my.domain.com 

如果需要,您可以添加端口

 http://my.domain.com:1234 

你不需要重新启动Android设备。


如果问题没有发生,请确保它是通过直接ping IP地址来与hosts相关的。

 adb shell ping 192.168.xx 

如果有效,则再次检查文件中的行尾。 一些文本编辑器可能会混淆它们,而使用Unix行尾的选项通常只与新文件相关。

显然上面的解决scheme都没有帮助你,这是我的预期。 我不知道如何给你一步一步的解决scheme,但我希望我的回答能帮助你。

模拟器(通常)驻留在完全不同的子网中。

仿真系统创build一个虚拟networking适配器,将仿真器连接到主机,因此您需要将“虚拟networking适配器”的地址提供给“主机文件”,而不是“主机”的“物理networking适配器”的IP地址。

这是它在networking上的外观

 Computer Emulator 192.168.0.115 mask: 255.255.255.0 192.168.6.1<-------------------------->192.168.6.2 mask: 255.255.255.0 

所以对于模拟器,192.168.0.115不存在

所以在hosts文件中,当你的web浏览器正在监听每个可能的本地地址(例如0.0.0.0:80)或者相应地改变子网掩码时,给出地址192.168.6.1(或者你的虚拟networking适配器地址是什么)。 我认为前者是一个很好的解决scheme。