Ubuntu 14.04下创建Genymotion安卓虚拟机的步骤详解

 更新时间:2017年03月25日 11:51:55   作者:振兴  
Android 模拟器一直以速度奇慢无比著称,基本慢到不可用。本文介绍我一直在用的 Genymotion,速度不亚于真机。而且功能齐全,使用简单。下面这篇文章主要介绍了Ubuntu 14.04下创建Genymotion虚拟机的步骤,需要的朋友可以参考下。

前言

Genymotion 来自于 AndroVM 这个开源项目,基于 x86 和 VirtualBox,支持 OpenGL 加速,可以用于 Mac/Win/Linux。

最近工作开发环境有Windows切换到了Ubuntu,以前在Windows环境下使用Genymotion搞Android开发还蛮好用的。那么在Ubuntu环境下桌面创建Genymotion虚拟机呢,今天搞搞试试看~!~!

Virtualbox

先安装虚拟机软件Virtualbox,没有安装这个软件不能够使用Genymotion软件。

sudo apt-get install virtualbox

Genymotion

下载

先访问Genymotion官网,想要下载必须先注册Genymotion账号。

点击右上角的下载按钮,进入下载页面。Genymotion有好多版本,有些时收费的,作为开发者我们使用最基础的版本就够用的(PS:免费)。选择Get Genymotion personal version,进入personal Edit下载genymotion-2.8.1_x64.bin。

执行下边命令,生成名为genymotion的文件夹。

chmod +x [InstallerPath]/genymotion.bin 
[InstallerPath]/genymotion.bin

运行

进入genymotion文件夹后,我们可以看到名为genymotion的可运行程序,双击或者在命令行当中运行。

im@58user:/usr/lib/x86_64-linux-gnu$ sudo /home/im/program/genymotion/./genymotion
Logging activities to file: /home/im/.Genymobile/genymotion.log
Logging activities to file: /home/im/.Genymobile/genymotion.log
Logging activities to file: /home/im/.Genymobile/Genymotion/deployed/Google Nexus 5X - 6.0.0 - API 23 - 1080x1920/genymotion-player.log
OpenGL connected to 192.168.56.101:25000
Port 22468 will be used for OpenGL data connections

如果没有问题那么则会像Windows环境下一样启动。

问题

自古好事多磨

问题1:

im@58user:/usr/lib/x86_64-linux-gnu$ sudo /home/im/program/genymotion/./genymotion
/home/im/program/genymotion/./genymotion: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/im/program/genymotion/libQt5Core.so.5)
/home/im/program/genymotion/./genymotion: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/im/program/genymotion/libQt5WebKit.so.5)
/home/im/program/genymotion/./genymotion: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/im/program/genymotion/libicui18n.so.52)
/home/im/program/genymotion/./genymotion: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/im/program/genymotion/libicuuc.so.52)
/home/im/program/genymotion/./genymotion: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/im/program/genymotion/libQt5Qml.so.5)

执行genymotion程序时缺少相应的文件,上网找答案,提示更新gcc为4.9

下边为网络上的解决办法

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update 
sudo apt-get install gcc-4.9 g++-4.9

然而在我的电脑环境中执行却没有办法更新gcc。

日志信息:

im@58user:/usr/lib/x86_64-linux-gnu$ sudo apt-get install gcc-4.9 g++-4.9
[sudo] password for im: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树  
正在读取状态信息... 完成  
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 g++-4.9:i386 : 依赖: gcc-4.9-base:i386 (= 4.9.4-2ubuntu1~14.04.1) 但是 4.9.3-0ubuntu4 正要被安装
    依赖: libstdc++-4.9-dev:i386 (= 4.9.4-2ubuntu1~14.04.1) 但是它将不会被安装
    依赖: libcloog-isl4:i386 (>= 0.17) 但是它将不会被安装
    依赖: libmpc3:i386 但是它将不会被安装
    依赖: libmpfr4:i386 (>= 3.1.3) 但是它将不会被安装
 gcc-4.9:i386 : 依赖: cpp-4.9:i386 (= 4.9.4-2ubuntu1~14.04.1) 但是它将不会被安装
    依赖: gcc-4.9-base:i386 (= 4.9.4-2ubuntu1~14.04.1) 但是 4.9.3-0ubuntu4 正要被安装
    依赖: binutils:i386 (>= 2.24) 但是它将不会被安装
    依赖: libgcc-4.9-dev:i386 (= 4.9.4-2ubuntu1~14.04.1) 但是它将不会被安装
    依赖: libcloog-isl4:i386 (>= 0.17) 但是它将不会被安装
    依赖: libmpc3:i386 但是它将不会被安装
    依赖: libmpfr4:i386 (>= 3.1.3) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

好无奈,没有办法解决这个问题。

再才执行运行genymotion的命令

im@58user:/usr/lib/x86_64-linux-gnu$ sudo /home/im/program/genymotion/./genymotion

查看输出的日志,有这么一段关键的信息

version xxx not found``` ,查看了一下该路径下的文件:

```
im@58user:/usr/lib/x86_64-linux-gnu$ ls | grep "libstdc"
libstdc++.so.6
libstdc++.so.6.0.19
im@58user:/usr/lib/x86_64-linux-gnu$ pwd
/usr/lib/x86_64-linux-gnu

有libstdc++.so.6这个文件啊!!!

问题二:

要升级gcc(PS:升级失败),会不会gcc4.9比gcc4.8的libstdc++.so.6文件版本高。先下载libstdc++看看。
http://ftp.debian.org/debian/pool/main/g/gcc-4.9/libstdc++6-4.9-dbg_4.9.2-10_amd64.deb 发现为.deb非常兴奋,是不是直接执行安装就行啦。结果依旧提示“依赖: gcc-4.9-base:i386 ”。

思考思考,先解压看看libstdc++6-4.9-dbg_4.9.2-10_amd64.deb文件里面都有什么:

libstdc++6-4.9-dbg_4.9.2-10_amd64.deb.png

找到libstdc++.so.6.0.20并提取出来并修改为libstdc++.so.6,再与 /usr/lib/x86_64-linux-gnu 目录下的libstdc++.so.6替换。再次运行genymotion,成功启动~!~!

解决一个问题的方法有好多种,多尝试,总能找到答案。

总结

以上就是关于Ubuntu14.04创建Genymotion虚拟机的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

  • Kotlin创建一个好用的协程作用域

    Kotlin创建一个好用的协程作用域

    这篇文章主要介绍了Kotlin创建一个好用的协程作用域,kotlin中使用协程,是一定要跟协程作用域一起配合使用的,否则可能协程的生命周期无法被准确控制,造成内存泄漏或其他问题
    2022-07-07
  • Android开发实现各种图形绘制功能示例

    Android开发实现各种图形绘制功能示例

    这篇文章主要介绍了Android开发实现各种图形绘制功能,结合实例形式分析了Android图形绘制常用的组件、函数使用方法及相关注意事项,需要的朋友可以参考下
    2017-09-09
  • 浅谈一下Android的Activity

    浅谈一下Android的Activity

    这篇文章主要介绍了浅谈一下Android的Activity,活动是所有安卓应用程序的门面,凡事你在应用中看到的东西,都是放到活动中的,需要的朋友可以参考下
    2023-04-04
  • Android NavigationBar问题处理的方法

    Android NavigationBar问题处理的方法

    本篇文章主要介绍了Android NavigationBar问题处理的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Android使用自定义alertdialog实现确认退出按钮

    Android使用自定义alertdialog实现确认退出按钮

    本文通过实例代码给大家详解Android使用自定义alertdialog实现确认退出按钮,对alertdialog退出按钮相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • Android提高之ListView实现自适应表格的方法

    Android提高之ListView实现自适应表格的方法

    这篇文章主要介绍了Android采用ListView实现自适应表格的方法,比较实用的功能,需要的朋友可以参考下
    2014-08-08
  • Android实战教程第八篇之短信备份

    Android实战教程第八篇之短信备份

    这篇文章主要为大家详细介绍了Android实战教程第八篇之短信备份的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Android开发实现的简单五子棋游戏示例

    Android开发实现的简单五子棋游戏示例

    这篇文章主要介绍了Android开发实现的简单五子棋游戏,结合实例形式分析了Android实现五子棋游戏功能的布局、游戏功能等具体实现步骤与相关算法实现技巧,需要的朋友可以参考下
    2017-12-12
  • SwipeRefreshLayout+RecyclerView实现上拉刷新和下拉刷新功能

    SwipeRefreshLayout+RecyclerView实现上拉刷新和下拉刷新功能

    这篇文章主要介绍了SwipeRefreshLayout+RecyclerView实现上拉刷新和下拉刷新功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • 详解android异步更新UI的几种方法

    详解android异步更新UI的几种方法

    本篇文章主要介绍了详解android异步更新UI的几种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06

最新评论