AVD仿真器浏览器不会使用hosts文件

问题描述 投票:1回答:3

我很沮丧这个。我有一个开发Web服务器为我的Android应用程序运行服务提要。我可以从任意数量的机器浏览它。

在AVD上(我尝试了不同的版本)我重新安装rw并拉动,编辑然后将主机文件推回到系统/ etc / hosts。在DDMS中,我看到更新的日期,如果我将其拉回,那么更改就在那里。

此外,如果我转到命令提示符然后运行adb shell并ping testhost名称我从正确的ip获得回复。所以为什么??????将avd浏览器加载页面。哦是的页面。简单的HTML,表示我正在工作。

最后,如果我没有浏览到html页面那很好,但由于我需要我的应用程序来查询我的服务(托管相同的站点)以进行开发和测试,我认为这将是一个很好的测试连接之前尝试拥有我的应用程序向服务请求。

难住了。 .....


解决了!!!

我的Windows背景让我编辑一个主机文件,其中包含IP然后选项卡,然后是主机名。好吧,我遵循了一些指令,让我从adb shell编辑主机。那工作......嗯???所以我拉了文件,然后在Edit +中打开,发现我正在脚下拍摄muyself。 ip和主机名之间只有*一个空格。它现在很好用。

android android-emulator avd
3个回答
1
投票

我的Windows背景让我编辑一个主机文件,其中包含IP然后选项卡,然后是主机名。好吧,我遵循了一些指令,让我从adb shell编辑主机。那工作......嗯???所以我拉了文件,然后在Edit +中打开,发现我正在脚下拍摄muyself。 ip和主机名之间只有*一个空格。它现在很好用。如果有疑问,我强烈建议您更新主机文件而不将文件拉到桌面。这是来自shell的命令。

./adb -s [DeviceID] shell
echo '###.###.###.###   [HostName/URl]' >> /etc/hosts
exit

注意上述命令并不是每个步骤都只需要从shell实际编辑文件的命令。你还需要写烫发等。


1
投票

在Windows主机文件中,它允许在IP地址和主机名之间有多个空格(制表符),但在android主机文件中,它需要IP和HostName之间的单个空格。我尝试使用带有单个条目的主机文件,其中IP和主机名使用notepad ++以单个空格字符分隔。但仍然存在问题,即我无法在模拟器中打开网站。

您可以找到将本地计算机的主机文件推送到Android模拟器的步骤 - > http://borkweb.com/story/setting-etchosts-on-an-android-emulator-using-a-mac

但仍然模拟器无法使用此主机文件解析为 - >我试过这个(工作):1。在模拟器2中推送一个空的主机文件2.使用adb shell echo命令编辑相同的主机文件

#adb shell    
#echo '172.30.1.227 fat.choice.plus' >> system/etc/hosts    
#echo '\n172.30.1.227 static-fat.loyrewards.com' >> system/etc/hosts    
  • 在上面的命令中使用您的IP地址和主机名
  • 从adb shell中出来使用快捷键Ctrl + D您可以使用\ n字符为换行添加多个条目。仿真器现在能够使用此修改后的主机文件并成功加载站点。 :-)

0
投票

在我的特定情况下,localhost子域在android模拟器浏览器上给出了这个问题(即使我可以ping域),我在macOS 10.14上使用下一个映射:

10.0.2.2    something.localhost

摆脱localhost为我解决了这个问题。我不知道为什么在我的Mac上发生这种情况,我无法在Ubuntu 18.04上重现这种行为

© www.soinside.com 2019 - 2024. All rights reserved.