安卓模拟器-dns服务器使用方法

7

我目前在尝试让安卓模拟器使用运行在本地主机(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

这个问题出现在运行在Windows上的Android模拟器版本5.0(build_id ECLAIR-24846)中。

如果有任何提示如何使其正常工作,将不胜感激!

1个回答

8

有几个问题需要注意:

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

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

3)还请参阅StackOverflow上的另一个问题: Android模拟器不使用Windows主机文件?


8
模拟器-avd<Avd名称>-DNS服务器8.8.8.8 - Androider

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接