Android Studio虚拟设备连不上网

每个坑都踩了,踩完你的踩踩你的

Android Studio虚拟设备断网

很可能是因为代理(?)或者dns不对(如果用ip可以访问,只是解析不了域名的话)

查了下主要有三种方法,原理都是修改DNS。目前看到的改成8.8.8.8114.114.114.114,或者本机DNS的都有

查看本机DNS:

1
ipconfig /all

image-20260116105612238

一:启动时用命令指定DNS服务器

参考:https://blog.csdn.net/weixin_44524687/article/details/123897937

先关闭虚拟设备。使用cmd进入SDK\emulator目录,获取虚拟机名称,然后用emulator指定dns启动

1
2
emulator.exe -list-avds
emulator.exe -avd 你的虚拟机名称 -dns-server 8.8.8.8

image-20260116103223029

二:在虚拟设备中配置DNS

参考:https://blog.csdn.net/waterseason/article/details/147250254

打开虚拟设备后点进网络设备-IP设置,把DHCP改成静态,手动输入DNS

点击连接的这个AndroidWiFi,下拉看配置,能看到默认的网关和IP,DNS是10.0.2.3

image-20260115121903084

右上角编辑,展开advanced setting

image-20260115120706922

选择静态,输入IP地址网关掩码DNS

三:adb配置DNS

参考:https://blog.mvui.cn/detail/39415.html

上面两种都无效,怀疑不是DNS问题(?)但是用浏览器验证好像不准确,可以用adb连上设备的shell,然后用命令行测试。有没有拿到IP,能不能ping通8.8.8.8,最后查看DNS

1
2
3
ip addr show eth0
ping 8.8.8.8
getprop net.dns1

我这情况是有IP,ping通,没有dns。奇了怪了

设置DNS服务器

1
setprop net.dns1 114.114.114.114

image-20260116105145743

如果报这个错的话是因为权限不足,先进root

image-20260116105403195

最后需要重启。坏了,之前改DNS也没重启

用adb reboot重启之后getprop又显示没DNS服务器了,甚至WiFi都干没了?如此绝望

image-20260116110925103

手动重启了一下好了,我真是泪目了

image-20260116112347510

Outro

需要回去看看是不是重启的问题。验证一下到底是啥有效,真的很迷

应用启动崩溃

为什么会放到这里呢,因为在logcat查找原因的时候发现了:DNS 返回空记录android_getaddrinfo failed: EAI_NODATA

image-20260116204956181

所以是网络请求失败导致的业务模块加载失败?但是之前连不上网的时候也能进啊

继续查网络。DNS是8.8.8.8(为什么是这个不是114啊),114不通

image-20260116120128084

常见域名通,ximalaya不通

image-20260116120222011

那就不是DNS的问题了。可能是启动时通信的域名被墙了?

image-20260116120533642

需要抓包确定了

大量 ClassNotFoundException ,运行时需要的一些模块/类没有被加载到类路径。

image-20260116202054212

如果只装了 base,而你的 app 运行时会从 app_dex 下加载 ad/kid 等模块,就会找不到类。