最近打算用夜神模拟器来和本机服务器做一些信息交互的功能,但是服务器搭建好了,用叶神模拟器却无法访问。折腾了大半天才发现原来是模拟器的问题。
具体过程如下:
搭建好服务器后,在本机上访问“http://127.0.0.1:5000/”,可以访问本机服务器。但是在Android Studio下写了个简单的Android程序来访问“http://127.0.0.1:5000/”时,却又无法访问本机服务器。报错如下所示:
后来经过度娘的帮助,了解到Android底层是Linux内核,Android本身就是一个操作系统;因此,这时我们在模拟器的浏览器中输入的localhost或127.0.0.1所代表的是 Android模拟器(Android虚拟机),而并非是你的电脑。这也是你在模拟器中使用localhost时会报“找不到网页”的原因。
只需在Android操作系统中,将本地电脑的地址映射为10.0.2.2(大部分模拟器默认的映射地址,在模拟器端访问此地址就相当于访问了本机服务器即http://127.0.0.1);因此,只需要将原先的localhost或者127.0.0.1改成10.0.2.2,就可以在模拟器上访问到本机服务器,但是试过之后发现还是不行。
此时已经无语。。。吃过饭晚后,再经过Google大哥的帮助,总算找到了答案。问题的原因竟然是模拟器的问题。。。
网上有大神专门做了测试,过程如下:
打开本机服务器,然后启动Android模拟器(在此启动三台模拟器作比较,分别是官方AVD、夜神和海马玩模拟器),打开模拟器上的浏览器,然后访问:http://10.0.2.2:8080/,理论上就可以看到Tomcat。但是结果却如下所示
夜神无法访问其他模拟器却可以。至于这个问题我又去夜神官方找了下答案,发现也有小伙伴遇到这样的问题,但是目前夜神官方还没有给出答案。