Android Studio虚拟设备连不上网
每个坑都踩了,踩完你的踩踩你的
Android Studio虚拟设备断网
很可能是因为代理(?)或者dns不对(如果用ip可以访问,只是解析不了域名的话)
查了下主要有三种方法,原理都是修改DNS。目前看到的改成8.8.8.8,114.114.114.114,或者本机DNS的都有
查看本机DNS:
1 | ipconfig /all |

一:启动时用命令指定DNS服务器
参考:https://blog.csdn.net/weixin_44524687/article/details/123897937
先关闭虚拟设备。使用cmd进入SDK\emulator目录,获取虚拟机名称,然后用emulator指定dns启动
1 | emulator.exe -list-avds |

二:在虚拟设备中配置DNS
参考:https://blog.csdn.net/waterseason/article/details/147250254
打开虚拟设备后点进网络设备-IP设置,把DHCP改成静态,手动输入DNS
点击连接的这个AndroidWiFi,下拉看配置,能看到默认的网关和IP,DNS是10.0.2.3

右上角编辑,展开advanced setting

选择静态,输入IP地址网关掩码DNS
三:adb配置DNS
参考:https://blog.mvui.cn/detail/39415.html
上面两种都无效,怀疑不是DNS问题(?)但是用浏览器验证好像不准确,可以用adb连上设备的shell,然后用命令行测试。有没有拿到IP,能不能ping通8.8.8.8,最后查看DNS
1 | ip addr show eth0 |
我这情况是有IP,ping通,没有dns。奇了怪了
设置DNS服务器
1 | setprop net.dns1 114.114.114.114 |

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

最后需要重启。坏了,之前改DNS也没重启
用adb reboot重启之后getprop又显示没DNS服务器了,甚至WiFi都干没了?如此绝望

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

Outro
需要回去看看是不是重启的问题。验证一下到底是啥有效,真的很迷
应用启动崩溃
为什么会放到这里呢,因为在logcat查找原因的时候发现了:DNS 返回空记录android_getaddrinfo failed: EAI_NODATA

所以是网络请求失败导致的业务模块加载失败?但是之前连不上网的时候也能进啊
继续查网络。DNS是8.8.8.8(为什么是这个不是114啊),114不通

常见域名通,ximalaya不通

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

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

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