我想配置使用Oracle的VirtualBox,使其与Eclipse工作的安卓x86上运行的机器。 我有在做我虚拟机“在线”有些麻烦。 我连手机亚行通过键入在Android终端模拟器的情况如下:
ifconfig eth0 192.168.40.1 netmask 255.255.255.0
route add default gw 192.168.40.1 dev eth0
后来,我切换到cmd并输入ADB本地主机连接
但是,当我尝试运行在虚拟的Android使用Eclipse我的测试代码,它不会出现在Android设备选择器菜单。 此外,当我输入adb devices
在cmd中,这是响应:
List of devices attached
localhost:5555 offline
令我担心的另一件事是,以后每次我关闭虚拟机,我必须键入ifconfig
和route add
在终端再次命令当我重新启动,以便连接到该设备。
我能做些什么,以使设备在线?
编辑:如果它的事项,该VM被配置为通过NAT网络通信。 这就是我的端口转发规则是这样的:协议:TCP
主机IP:*
主机端口:5555
游客IP:*
客户端口:5555
EDIT2相关问题: 错误:设备离线
EDIT3:潜在的解决方案: Android设备选择器-我的装置似乎离线
这是比所有的容易得多,以便能够在在Android虚拟机的终端仿真类型TCPIP亚行:
adb tcpip 5555
然后从你的Eclipse机上的命令行通过ADB连接:
adb connect 192.168.40.1:5555
虚拟机现在应该通过ADB设备以及经由在Eclipse设备视图是可用的。
当我开始开发一些Android应用程序,我不得不面对同样的问题,所以寻找的东西,在VirtualBox guide
我读过的NAT不需要主机网络和客户机上的任何配置因此,它是默认的网络模式。 虚拟机启用NAT的行为很像是通过路由器连接到Internet的真正的电脑。 “路由器”,在这种情况下,是VirtualBox的网络引擎,从和虚拟机映射透明TRAC。 在VirtualBox中该路由器被置于每个虚拟机和主机之间。 因为默认情况下,虚拟机不能彼此交谈这种分离最大化的安全性。 NAT模式的缺点是,很像一个路由器后面的专用网络,虚拟机是从外面看不见的互联网和不可达。 由客户机操作系统发送出的网络帧通过的VirtualBox的NAT发动机,其提取所述TCP / IP数据和使用主机操作系统重新发送它接收到的。 为了在应用程序主机上,或者在同一个网络主机上的另一台计算机上,它看起来像数据是由主机上VirtualBox应用程序,发送使用属于主机的IP地址。 VirtualBox的监听答复发送的包,并重新包装,并将其重新发送到客户机的专用网络上。
虚拟机接收来自集成到VirtualBox的DHCP服务器专用网络上的网络地址和配置。 因此分配给虚拟机的IP地址,通常是一个完全不同的网络主机上。 由于虚拟机连接到专用网络内部的虚拟盒和无形的主机上访客网络服务不与主机或同一网络上的其他计算机访问。 然而,像物理路由器,VirtualBox的可以提供给世界所选服务通过端口转发客人之外。 这意味着,VirtualBox的侦听主机上的某些端口并重新发送它到达那里的客人,在相同或不同的端口的所有数据包。 因此,执行cmd
,进入文件夹中安装VirtualBox的地方,并在VBManage.exe是,为了应用TPC端口转发键入以下内容:
VBoxManage modifyvm "NameOfYourAndroidVM" --natpf1 adb,tcp,*,5555,*,5555
现在你可以通过与亚行连接到你的虚拟机:
adb connect localhost
只需配置为使用pridge网络模式,并在网络上启用DHCP服务器的虚拟机。