【问题标题】: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】:

    好的,这花了我一些时间来弄清楚采取这一步

    1. 找到您的 etc 文件夹
    2. cd 进入 init.d
    3. 运行 virtualbox 状态: 如果它告诉您需要安装 dkms 软件包。然后在一个新的终端上
    4. sudo apt-get install linux-headers-uname -r
    5. sudo dpkg-reconfigure virtualbox-dkms 6.输入密码并重新输入
    6. 然后重新启动并加载到 MOK(您将看到一个蓝屏,要求在重新启动之前重新加载到 MOK)
    7. 好的 你的机器现在已经重启了
    8. 启动终端转到 etc/init.d
    9. 运行 virtualbox 状态
    10. 我相信没有错误
    11. 在新终端上使用 genymotion cd 到您的目录 13.cd 进入 genymotion
    12. 运行 ./genymotion
    13. 恭喜

    【讨论】:

      【解决方案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,只能直接运行。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-09-11
          • 1970-01-01
          • 2015-09-24
          • 1970-01-01
          • 2015-01-31
          • 2020-01-14
          • 2017-07-05
          • 1970-01-01
          相关资源
          最近更新 更多