最近因为要学安卓与服务器交互的知识,所以必须要让android程序能访问一个测试服务器。所以我就考虑让真机或者模拟器访问PC端的Tomcat或者Apache服务。
在介绍步骤之前,有必要说点基础的。我们在本地访问本地web应用时,一般使用localhost或者127.0.0.1访问。但在android程序中我们决不能写这两个地址,因为android也是一款linux操作系统,使用这两个地址就会访问android机器本身了,所以我们必须在android程序中访问PC的IP地址。
首先,我考虑到是用真机访问Tomcat,将PC和Android手机放在同一个局域网,比如WLAN中,就可以直接用真机访问PC的静态IP访问到PC。这个方法被我PASS掉了。
接着,我就要考虑用模拟器来访问Tomcat了,这里先介绍介绍我用的模拟器-Grnymotion,这是我用过最快的模拟器,在浏览器输入本地链接的IP地址192.168.1.3(我的Tomcat默认80端口),挂掉了。我应该现在PC浏览器里试试的,在PC浏览器里访问,还是挂掉了,难道我的静态IP不起作用,打开网络中心,原来是我网线没插。本地连接没起作用,插上网线,再来一次,PC端访问正常。再用模拟器访问,还是挂掉了。
经过google,我知道了下面几点
- Genymotion安装后VirtualBox Host-Only Network的IP为192.168.56.1,在PC端以这个地址能访问Tomcat
- use 10.0.2.2 for default AVD and 10.0.3.2 for Genymotion,Genymotion访问主机以10.0.3.2访问
我用上面的两个地址在模拟器访问,一个都没成。会不会是VirtualBox Host-Only Network没装好呢,我把它删了,VirtualBox应该会再生成一个?打开设备管理器,直接将它干掉。然后悲剧了,没生成,于是我就将VirtualBox
卸了装,装了卸,都没有再出现VirtualBox Host-Only Network,在VirtualBox,选择管理
– 全局设定– 网络 – 添加仅主机(Host-Only)网络,提示“无法创建Host-Onlynetwork adapter”。
google找到了解决方法,参考 http://support.huawei.com/ecommunity/bbs/10224117.html
该问题一般是由于virtualbox 的网卡驱动未安装正确导致,解决办法是:
-
到控制面板里面去卸载VirtualBox。
-
到 C:WindowsSystem32drivers目录下找到VBox开头的.sys文件,一般有VboxDrv.sy,VboxNetAdp.sys,VboxNetFlt.sys,VBoxUSBMon.sys,将这些文件删除。
-
重启电脑。
-
重新以管理员权限安装VirtualBox,安装完成后,再次创建虚拟网卡,一般都会成功。
按照上面的步骤,终于恢复了VirtualBox Host-Only Network,但是依然不能在模拟器中访问PC端,于是,我又回过头来看模拟器的配置,尝试性的将配置修改成如下图
再来以10.0.3.2访问,好了,可以正常访问了。但是,我以192.168.56.1访问,还是没有成功,不知道为什么,有知道的告诉我一下。