我目前正在努力让 Android 模拟器使用在本地主机 (127.0.0.1) 上运行的自定义 DNS 服务器。
到目前为止,我已经尝试了各种方法试图说服模拟器使用我的 DNS 服务器,但到目前为止还没有成功。最后,它总是归结为以下错误消息:
### WARNING: can't resolve DNS server name 'localhost'
### WARNING: will use system default DNS server
然而,当提供给 nslookup 时,localhost 可以正确解析:
$ nslookup localhost
Server: dnszrh01.xxx
Address: 10.xxx.xxx.xxx
Non-authoritative answer:
Name: localhost.xxx
Address: 127.0.0.1
使用 IP 地址代替主机名也没有多大帮助,
它只是将错误消息更改为:
### WARNING: can't resolve DNS server name '127.0.0.1'
### WARNING: will use system default DNS server
我用来启动模拟器的额外命令行如下:
-http-proxy http://proxy.xxx:8080 -dns-server 127.0.0.1 -debug-proxy -verbose
Android 模拟器版本 5.0 (build_id
ECLAIR-24846) 在 Windows 上运行。
非常感谢任何有关如何使其正常工作的提示!
有几件事...
1)我注意到当我根本没有网络连接时也会收到此错误。 IE。没有无线或以太网连接。
2)摘自模拟器指南:http://developer.android.com/guide/developing/tools/emulator.html#dns
配置模拟器的 DNS 设置
启动时,模拟器会读取系统当前使用的 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 获取地址。请注意,这通常意味着模拟器会忽略“hosts”文件的内容(Linux/OS X 上的 /etc/hosts,Windows 上的 %WINDOWS%/system32/HOSTS)。
在命令行启动模拟器时,您还可以使用 -dns-server 选项手动指定要使用的 DNS 服务器的地址,其中 是服务器名称或 IP 地址的逗号分隔列表。如果您在模拟网络中遇到 DNS 解析问题(例如,使用 Web 浏览器时出现“未知主机错误”消息),您可能会发现此选项很有用。
3)另请参阅另一个 StackOverflow 问题:Android模拟器不使用Windows主机文件?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)