Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Android模拟器的系统主机文件_Android_Emulation_Hosts - Fatal编程技术网

使用Android模拟器的系统主机文件

使用Android模拟器的系统主机文件,android,emulation,hosts,Android,Emulation,Hosts,我在Android模拟器中使用系统主机文件详细信息时遇到问题。 我在Webserver中部署了我的网站(www.example.com)。 我正在尝试从桌面访问Emulator中的这些网站。 我的桌面有一个主机文件,其条目为 10.xx.xx.xx www.example.com 我正在尝试从android emulator浏览器访问www.example.com,但它不工作 我参考了下面的网站,但是大多数网站都说如果网站部署在同一台服务器上,如何使用hosts文件 如果有人有答案,请告诉我。

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

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

我正在尝试从android emulator浏览器访问www.example.com,但它不工作

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

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


-Senthil

要访问您的本地主机,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上的/system32/hosts)

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

在您的控制台上使用:

emulator-avd-dns服务器

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


需要检查的一件重要事情是,如果您在Windows或MacOS计算机上创建主机文件,主机文件是否包含linux行结尾('\n',LF,#10,#0x0A)。如果主机文件包含Windows的2字符行结尾('\r\n',CRLF,#13#10,#0x0D0A)或MacOS样式的行结尾('\r',CR,#13,#0x0D),Android将忽略主机文件


除字母/数字/点(用于IP和主机名)外,该文件应仅包含字符0x20(空格)、0x09(制表符)和0x0A(新行)。使用最新的Android studio和工具。现在,您可以按照以下说明使用。每个模拟器只需运行一次

  • 使用以下命令启动仿真器。此命令位于[sdk文件夹]/tools目录下

    emulator @[emulator name] -writable-system
    
  • 打开另一个命令提示符,然后将目录切换到[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
    

  • 非常感谢。我花了一天的时间试图弄明白这一点,直到我终于找到了这篇很棒的帖子!浏览此链接它适用于我可写系统是你在任何地方都找不到的最重要的一点我认为还有一个步骤需要重新启动设备以应用这些更改,方法是执行以下命令:adb REBOOTT这只适用于没有播放存储的模拟器。否则,adb根将失败。