出现这种问题的原因是模拟器用的是虚拟网卡,需要将虚拟网卡与宿主机的网卡连接起来才能获取到IP地址。解决的方法有两种:
在模拟器中,打开'设置”-> '无线和网络”->'WIFI”->'高级选项”。在'IP设置”中,选择'静态”,手动输入IP地址、子网掩码、网关和DNS服务器。在'IP地址”中输入与宿主机在同一网段的有效IP地址,其他三项可以随意填写。
在电脑上,打开控制面板->'网络和共享中心”->'更改适配器设置”,找到模拟器的虚拟网卡,右键选择'属性”。在'共享”选项卡中勾选'允许其他网络用户通过此计算机的Internet连接连接”,在'家庭网络连接”中选择实际连接Internet的网卡(一般为无线网卡、以太网卡等),保存设置后关闭窗口。
如果以上方法都无法解决问题,则需要进一步检查模拟器的安装和配置,或者考虑使用真机进行测试。
示例代码如下:
adb shell ifconfig eth0 192.168.1.21 netmask 255.255.255.0 up
adb shell setprop net.dns1 8.8.8.8
netsh interface ip set address name="VirtualBox Host-Only Network" static 192.168.1.1 255.255.255.0 192.168.1.254
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=192.168.1.1 connectport=8080 connectaddress=192.168.1.21