2010-04-20 76 views
3

我目前有点努力让Android模拟器使用在localhost(127.0.0.1)上运行的自定义DNS服务器。Android模拟器-dns-server使用

到目前为止,我尝试了各种方法来说服模拟器使用我的DNS服务器,但目前为止没有成功。最后,它总是归结为以下错误消息:

$ 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 'localhost' 
### WARNING: will use system default DNS server 

本地主机,然而,提供与nslookup时正确解析太大的帮助, 它只是改变了错误消息:

### 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上运行发生。

任何提示如何得到这个工作非常感谢!

回答

7

一对夫妇...

1)我注意到我也有这个错误,当我没有网络连接。即。没有无线或以太网连接。

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获取地址。请注意,这通常意味着模拟器会忽略“主机”文件(Linux/OS X上的/ etc/hosts,Windows上的%WINDOWS%/ system32/HOSTS)的内容。

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

3)也看到这个StackOverflow的其他问题: Android emulator doesn't use Windows host file?

+6

如:模拟器-avd -dns服务器8.8.8.8 – Androider 2011-11-14 09:56:52