Thi*_*kel 4 android android-emulator
我目前有点努力让Android模拟器使用自定义DNS服务器,该服务器在localhost(127.0.0.1)上运行.
到目前为止,我尝试了各种方法试图说服模拟器使用我的DNS服务器,到目前为止没有成功.最后,它总是归结为以下错误消息:
### WARNING: can't resolve DNS server name 'localhost'
### WARNING: will use system default DNS server
Run Code Online (Sandbox Code Playgroud)
但是,localhost在提供给nslookup时正确解析:
$ nslookup localhost
Server: dnszrh01.xxx
Address: 10.xxx.xxx.xxx
Non-authoritative answer:
Name: localhost.xxx
Address: 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
使用IP地址而不是主机名也没什么用,它只是将错误消息更改为:
### WARNING: can't resolve DNS server name '127.0.0.1'
### WARNING: will use system default DNS server
Run Code Online (Sandbox Code Playgroud)
我用来启动模拟器的额外命令行读取:
-http-proxy http://proxy.xxx:8080 -dns-server 127.0.0.1 -debug-proxy -verbose
Run Code Online (Sandbox Code Playgroud)
这是在Windows上运行的Android模拟器版本5.0(build_id ECLAIR-24846)中发生的.
任何提示如何使这项工作非常感谢!
几件事......
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模拟器不使用Windows主机文件?
| 归档时间: |
|
| 查看次数: |
17861 次 |
| 最近记录: |