更新 注意 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盤中的 .android\avd 目錄下找到你創建過的所有模擬器