很怪异的一个问题,全新安装了Android 2.3.3的模拟器,启动模拟器后,发现模拟器网络有问题,根本不能上网。Android 2.2模拟器就不存在这个问题,只要电脑能上网,模拟器也就能上网。找了一些资料,都说得不清楚,现在就把它们整理一下:
1、无论是全新安装Android 2.3模拟器还是升级模拟器到2.3,如果出现模拟器不能联网的情况,原因是Android 2.3默认没有安装GSM modem,在新产生AVD模拟器(或编辑AND)时,硬件中添加GSM即可,这样的话只要电脑可以上网,模拟器也可以上网了。
![点击放大图片](http://www.sunchis.com/uploads/allimg/2011/20110917092045.jpg)
2、如果是全新Android 2.3模拟器并且添加了“GSM modem support”支持,还是不能联网,那么问题就出在DNS IP地址上,因为Android 2.3模拟器默认的DNS是10.0.2.3。
在家庭网络环境里,一般都是使用的C类192.168.1.x这样的IP地址,10.0.2.3与192.168.1.x不在同一个网段内,因此无法通讯。所以必须得手动更改模拟器的默认DNS,将其设置成电脑的DNS地址(或者设置成网关地址也可以)。
要完成上述操作,必须要借助大名鼎鼎的adb工具了。但有个问题要注意下,Android 2.3之后,adb工具不再放在\android-sdk-windows\tools目录下了,而是另起了一个目录,在\android-sdk-windows\platform-tools下,因此有必要将\android-sdk-windows\platform-tools这个目录加入到系统环境变量中。
第一步:在cmd窗口中进入adb工具所在目录(如果设置了环境变量,则此步可省略)
- F:
- cd F:\Project\android-sdk-windows\platform-tools
第二步:使用adb shell命令,进入adb模式
注意:我没有配置系统环境变量,所以我的命令是./adb shell
- F:\Project\android-sdk-windows\platform-tools>adb shell
- #
第三步:使用getprop命令,得到所有的属性
- # getprop
命令执行后,会列出所有的属性清单,其中,你会看到
- [net.dns1]: [10.0.2.3]
第四步:把DNS改成自己所在区域的DNS地址,如果你是通过路由器上网,改成网关地址也可以。
- # setprop net.dns1 192.168.1.1 //我的路由器的网关地址
- 或者
- # setprop net.dns1 202.96.134.133 //深圳电信的DNS地址
OK,经过上述操作,Android 2.3模拟器就可以打开网页进行上网了。