【问题标题】:Genymotion does not find VirtualBox when run from Android Studio从 Android Studio 运行时 Genymotion 找不到 VirtualBox
【发布时间】:2017-05-17 14:14:36
【问题描述】:
使用 Ubuntu 16.04、Android Studio 和 Genymotion(最新版本)。
Genymotion 在直接运行时完美运行,但在安装了 Genymotion 插件的 Android Studio 中无法运行。我从 Genymotion 得到的错误是“为了工作,Genymotion 需要在您的计算机上安装 VirtualBox。您可以从 www.virtualbox.org/wiki/Downloads 下载最新版本的 VirtualBox。”。
当然安装了 VirtualBox。甚至尝试将其删除并重新安装(v. 5.1)。
【问题讨论】:
标签:
android
android-studio
ubuntu
virtualbox
genymotion
【解决方案1】:
好的,这花了我一些时间来弄清楚采取这一步
- 找到您的 etc 文件夹
- cd 进入 init.d
- 运行 virtualbox 状态:
如果它告诉您需要安装 dkms 软件包。然后在一个新的终端上
- sudo apt-get install linux-headers-
uname -r
- sudo dpkg-reconfigure virtualbox-dkms
6.输入密码并重新输入
- 然后重新启动并加载到 MOK(您将看到一个蓝屏,要求在重新启动之前重新加载到 MOK)
- 好的
你的机器现在已经重启了
- 启动终端转到 etc/init.d
- 运行 virtualbox 状态
- 我相信没有错误
- 在新终端上使用 genymotion cd 到您的目录
13.cd 进入 genymotion
- 运行 ./genymotion
- 恭喜
【解决方案2】:
Genymotion Android Studio 插件存在一个奇怪的问题,导致无法启动设备。这通常表现为 genymotion.log 包含错误消息,例如:
Output command: "/usr/lib/virtualbox/VBoxManage: ./libssl.so.1.0.0: version 'OPENSSL_1.0.2' not found (required by /usr/lib/x86_64-linux-gnu/libcurl.so.4)"
这是因为 Android Studio 将 LD_LIBRARY_PATH 定义为 /android/studio/install/dir/bin:$LD_LIBRARY_PATH,如果未设置 LD_LIBRARY_PATH,则变为 /android/studio/install/dir/bin:。这会导致 VBoxManage 尝试加载 Genymotion 提供的 libssl.so,这对于 Ubuntu 16.04 来说太旧了(因为当LD_LIBRARY_PATH 以“:”结尾时,链接器会在当前目录中查找库)
您可以执行以下操作之一:
- 编辑 studio.sh 以停止在
LD_LIBRARY_PATH 末尾添加尾随“:”(如果需要,我可以提供更多详细信息)
- 从 Genymotion 安装目录中删除 libssl.so 和 libcrypto.so
- 在启动 Android Studio 之前将
LD_LIBRARY_PATH 定义为某个随机值,以便 studio.sh 定义的 LD_LIBRARY_PATH 确实以“:”结尾
请注意,这已在 Android Studio 3.1 中修复。
【解决方案3】:
访问Genymotion site后,可能与dkms package有关:
确保已安装 dkms 软件包,并且每次有新的内核更新可用时它都会编译 VirtualBox 内核模块。
为此,请运行 sudo /etc/init.d/vboxdrv status。
您应该收到消息“VirtualBox 内核模块(vboxdrv、vboxnetflt、vboxnetadp、vboxpci)已加载”。
如果没有,请通过运行 sudo /etc/init.d/vboxdrv setup 强制编译 VirtualBox 内核模块。
还要确保您是 vboxusers 组的成员。
如果没有,请运行 sudo usermod -a -G vboxusers <login>。
可能是因为dkms package没有更新,所以你不能在Android Studio中使用Genymotion,只能直接运行。