更新 注意 Win10 要在cmd下打开, 也就是地址栏打cmd能成功
转载地址
https://blog.csdn.net/Bibifeng/article/details/81317037
最近写安卓项目时,需要写到网络请求的功能,在利用api接口请求数据时,偶然发现AndroidStudio中模拟器没有网络连接,这就有点不开心了,明明电脑是有网络连接的,按道理来说模拟器应该也是可以联网的。后来上网查了一下,说是模拟器默认的DNS和电脑上的DNS不一样,表明不在同一个网段,用命令行检查了两者的DNS,发现还真的不一样。
如何查看电脑DNS?直接打开cmd,输入命令ipconfig/all,找到如下这行:
如何查看模拟器DNS? 首先需要先启动模拟器,一定要先启动,启动之后,再打开cmd,输入命令adb shell,回车后再输入getprop,回车,找到如下红笔所划这行,就是模拟器的DNS:
显然,模拟器DNS和电脑DNS不一致。如何解决呢,网上办法很多,我找了一种最简单粗暴的,一发即中:
打开cmd,进入你电脑上skd的安装目录下的emulator文件夹。如果不想那么麻烦在命令行手动输入路径,可以先进入到emulator文件夹,然后在地址栏输入cmd,打开之后就自动进入到当前文件夹中了。(win7可以,其他版本的系统不知道行不行)
然后再命令行输入如下命令: (Nexus_5X_API_27_x86替换成你自己的模拟器名字,其他不变)
emulator -avd Nexus_5X_API_27_x86 -dns-server 8.8.8.8,114.114.114.114
回车之后,系统会帮你启动你电脑中名叫Nexus_5X_API_27_x86的模拟器,此时模拟器便可以上网了。这种方式最简单粗暴,但也最麻烦,因为这只是一次性的,如果下次不输入这行命令,模拟器还是不能上网,所以每次启动前都要输入这行命令。如果想一劳永逸,可以百度一下如何更改模拟器DNS,网上很多教程。
上面那个步骤如果不知道自己要启动的模拟器的那个名字,一般可以在C盘中的 .androidavd 目录下找到你创建过的所有模拟器