AndroidStudio自带的模拟器不能上网
AndroidStudio自带的模拟器不能上网
通过百度/谷歌,最后发现确实是最经常出现的问题:电脑的DNS和模拟器的DNS不同
查看电脑DNS
cmd命令行输入 ipconfig /all
查看模拟器DNS
cmd命令行输入 adb root -> adb shell -> getprop
然后会出来一个列表,,找到n开头的 [net.dns1]
两个地方确实不一样,另外查看模拟器DNS的时候,网上还有另外一种方法,也是出来一个列表很多条目,但是其中没有[net.dns1]这一条
设置模拟器DNS,将模拟器DNS和电脑的DNS设置成一样的
.\emulator -avd 模拟器名 -dns-server 你自己的DNS地址
首先进入到Android的sdk下的emulator目录,在这里打开cmd命令行
输入以下命令:.\emulator -avd 模拟器名 -dns-server 你自己的DNS地址
模拟器名称不要有空格,输入完以后正常情况下,模拟器浏览器就可以打开百度了,如果不行继续往下看
emulator: ERROR: Unknown AVD name [模拟器名], use -list-avds to see valid list.ANDROID_SDK_HOME is defined but there is no file 模拟器名.ini in $ANDROID_SDK_HOME\avd(Note: Directories are searched in the order $ANDROID_AVD_HOME, $ANDROID_SDK_HOME\avd and $HOME.android\avd)
意思就是说找不到这个模拟器名字,而且虽然ANDROID_SDK_HOME已经被定义了,但是ANDROID_SDK_HOME/avd目录下并没有模拟器名字.ini文件
ANDROID_SDK_HOME是需要在环境变量中配置的,avd目录就是as下载模拟器存放的目录,正常在.android文件夹下,然后我把avd目录手动复制到ANDROID_SDK_HOME目录下,再运行设置模拟器的DSN命令行就可以了
需要注意的是
1.使用这种方法的时候,不能事先开启模拟器,因为会通过命令开启,不能同时有两个一样模拟器被开启
2.命令行被关闭的时候,模拟器也会被关闭