更新:在您进一步阅读之前,我想指出,自从我将 VirtualBox 升级到 4.3.4 以来,我没有遇到任何问题。
我在 Ubuntu 13.10 下使用 VirtualBox 4.3.2。从 Genymotion 2.0.0 升级到 2.0.1 后我遇到了同样的问题。
这些是我解决此问题所遵循的步骤,尽管我不确定哪一个适合您。
Step 1.启动 VirtualBox,转到菜单“文件/首选项”菜单,转到“网络”部分,选择“仅主机网络”选项卡。
如果您没有定义任何适配器,那么您可以创建一个(如下所示),或者您可以忽略步骤 1,Genymotion 将在您尝试启动 VM 时创建它。
如果您确实有适配器 (vboxnet0),请单击编辑按钮。在编辑窗口中,您必须启用 DHCP 服务器,并且服务器的 IP 地址和分配池必须与网络控制器的 IP 在同一网络内。例如,我使用:
- IPv4 地址/网络掩码:192.168.56.1/255.255.255.0(在“适配器”选项卡上)
- 已启用 DHCP 服务器已选中(在 DHCP 服务器选项卡上)
- 服务器地址/网络掩码:192.168.56.100/255.255.255.0
- 服务器下/上地址:192.168.56.100/192.168.56.254
仍然在 VirtualBox 中,选择您拥有的 Android VM,单击“设置”按钮,选择“网络”部分。在适配器 1 选项卡中,您应该具有:
- 启用网络适配器已选中
- 附加到:仅主机适配器
- 名称: vboxnet0
通常,如果你拥有所有这些设置,它应该可以正常工作,但它不适合我。所以我转到了第 2 步。
Step 2.如 Genymotion 所示,启动 VirtualBox,转到菜单“文件/首选项”菜单,转到“网络”部分,选择“仅主机网络”选项卡并删除定义的适配器。
在 Genymotion 中启动您的虚拟机。 Genymotion 将使用正确的设置重新创建适配器(如步骤 1 中所述)
通常,如果步骤 1 不适合您,那么步骤 2 应该可以正常工作,但它不适合我。所以我转到了第 3 步。
Step 3.在 Genymotion 中删除并重新创建 Android VM(我按照步骤 1 中所述保留的 VirtualBox 仅主机网络设置)。
这解决了我的问题,Android VM 现在可以正常工作了。祝你好运。
Andrei.
更新:发布答案一天后,当我第一次在 genymotion 中启动虚拟机时,它再次给出相同的错误,并且 vboxnetdhcp 进程崩溃(并重新启动)。在第二次和后来的启动尝试中,它工作正常。因此,VirtualBox DHCP 进程可能仍然存在一些小问题。
更新:问题似乎存在于崩溃的虚拟 Box DHCP 服务器中:
/usr/lib/virtualbox/VBoxNetDHCP --network HostInterfaceNetworking-vboxnet0 --trunk-type netflt --trunk-name vboxnet0 --mac-address 08:00:27:72:4C:7B --ip-address 192.168.56.100 --netmask 255.255.255.0 --verbose
Floating point exception (core dumped)
删除并重新创建虚拟机再次解决了该问题。也许 Genymotion 向 VBox DHCP 发送了一些无效数据,导致其崩溃(尽管仍然是 VBox 的错误)。