VirtualBox上的Android x86:Android已连接但未在线

问题描述 投票:3回答:4

我正在尝试使用Oracle VirtualBox配置运行Android x86的计算机,以便它与Eclipse一起使用。使虚拟机“联机”时遇到一些麻烦。我通过在Android终端仿真器中键入以下命令将电话连接到adb:

ifconfig eth0 192.168.40.1 netmask 255.255.255.0
route add default gw 192.168.40.1 dev eth0

[之后,我切换到cmd并输入adb connect localhost

但是当我尝试在虚拟Android上使用Eclipse运行测试代码时,它不会出现在Android设备选择器菜单中。此外,当我在cmd中键入adb devices时,这是响应:

List of devices attached
localhost:5555   offline

令我烦恼的另一件事是,每次关闭虚拟机后,我都必须在重新启动时在终端上再次键入ifconfigroute add命令才能连接到设备。

如何使设备联机?

编辑:如果很重要,则将VM配置为通过NAT网络进行通信。我的端口转发规则如下所示:协议:TCP

主机IP:*

主机端口:5555

访客IP:*

访客端口:5555

EDIT2相关问题:Error: device offline

EDIT3:可能的解决方案:Android device chooser - My device seems offline

android adb virtual-machine virtualbox android-x86
4个回答
5
投票

这比所有这些都容易得多,要在Android VM Terminal Emulator类型中通过tcpip启用adb:

adb tcpip 5555

然后从Eclipse计算机上的命令行通过adb连接:

adb connect 192.168.40.1:5555

现在应该可以通过adb设备以及Eclipse中的设备视图使用该VM。


4
投票

[当我开始开发一些Android应用程序时,我必须处理相同的问题,因此在VirtualBox guide上寻找了一些东西,我读到NAT不需要在主机网络和来宾上进行任何配置。系统,因此,它是VirtualBox中的默认联网模式。启用了NAT的虚拟机的行为就像是一台通过路由器连接到Internet的真实计算机。在这种情况下,“路由器”是VirtualBox网络引擎,该引擎将往返于虚拟机的跟踪信息映射到虚拟机。透明地。在VirtualBox中,此路由器放置在每个虚拟机和主机之间。这种分隔可最大程度地提高安全性,因为默认情况下虚拟机无法相互通信。 NAT模式的缺点是,就像路由器后面的专用网络一样,虚拟机是不可见的,并且无法从外部Internet访问。来宾操作系统发出的网络帧由VirtualBox的NAT引擎接收,该引擎提取TCP / IP数据并使用主机操作系统重新发送。对于主机上的应用程序,或与主机位于同一网络上的另一台计算机,数据似乎是由主机上的VirtualBox应用程序使用属于主机的IP地址发送的。 VirtualBox侦听对发送的程序包的答复,然后重新打包并将它们重新发送到其专用网络上的来宾计算机。虚拟机从集成到VirtualBox的DHCP服务器接收专用网络上的网络地址和配置。这样分配给虚拟机的IP地址通常与主机位于完全不同的网络上。由于虚拟机已连接到Virtual-Box内部的专用网络且对主机不可见,因此主机或同一网络上的其他计算机将无法访问客户机上的网络服务。但是,就像物理路由器一样,VirtualBox可以通过端口转发使选定的服务对来宾以外的世界可用。这意味着VirtualBox侦听主机上的某些端口,并在相同或不同的端口上将到达主机的所有数据包重新发送给来宾。因此,执行cmd,转到VirtualBox的安装文件夹和VBManage.exe所在的文件夹,然后键入此文件夹以应用TPC端口转发:

VBoxManage modifyvm "NameOfYourAndroidVM" --natpf1 adb,tcp,*,5555,*,5555

现在您可以使用以下命令通过adb连接到虚拟机:

adb connect localhost

0
投票

只需将虚拟机配置为使用pridge网络模式,并在网络上启用dhcp服务器。


0
投票

我认为大多数人已经尝试过此方法,但是就我而言,仅通过连接到VirtualBox内置的称为“ VirtWifi”的wifi访问点即可解决此问题(该访问点可使虚拟机访问Internet)。除5555端口转发规则外,我所有虚拟机网络更改均为默认设置。我正在虚拟化Android v9.0(Pie)。

© www.soinside.com 2019 - 2024. All rights reserved.