Ubuntu 14.04下创建Genymotion安卓虚拟机的步骤详解
作者:振兴 发布时间:2023-11-04 19:17:54
前言
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,成功启动~!~!
解决一个问题的方法有好多种,多尝试,总能找到答案。
来源:http://dandanlove.com/2017/02/13/ubuntu-create-genymotion/
猜你喜欢
- 又忙了一周,事情差不多解决了,终于有可以继续写我的博客了(各位看官久等了)。这次我们来谈一谈Java里的一个很有意思的东西——回调。什么叫回
- 对单表进行增删改查是项目中不可避免的需求,Mybatis的通用Mapper插件使这些操作变得简单添加maven依赖在对应工程的pom.xml
- 0、引言在开发的过程中,很多业务场景需要一个树形结构的结果集进行前端展示,也可以理解为是一个无限父子结构,常见的有报表指标结构、菜单结构等。
- SessionSession对象用于获取与数据库的物理连接。 Session对象是重量轻,设计了一个互动是需要与数据库每次被实例化。持久化对
- 前言在windows平台下实现高性能网络服务器,iocp(完成端口)是唯一选择。编写网络服务器面临的问题有:1 快速接收客户端的连接。2 快
- 简介虽然java有自动化的GC,但是还会有内存泄露的情况。当然java中的内存泄露跟C++中的泄露不同。在C++中所有被分配的内存对象都需要
- 引言:关于java IO流的操作是非常常见的,基本上每个项目都会用到,每次遇到都是去网上找一找就行了,屡试不爽。上次突然一个同事问了我jav
- 前言 之前unity5.x在代码中写了debug.log..等等,打
- 使用mybatis生成逆向工程的详细步骤,我个人感觉这个是最简单的一个了,虽然网上有很多种的方法来生成逆向工程,可是这个方法最简单。在这里我
- 登录接口实现public User queryUser(String UserName, String Password,HttpServl
- 闲来无事,刚学会把git部署到远程服务器,没事做,所以简单做了一个抓取网页信息的小工具,里面的一些数值如果设成参数的话可能扩展性能会更好!希
- 本文介绍了Java中常见死锁与活锁的实例详解,分享给大家,具体如下:顺序死锁:过度加锁,导致由于执行顺序的原因,互相持有对方正在等待的锁资源
- 前言:WPF数据绑定对于WPF应用程序来说尤为重要,本文将讲述使用MVVM模式进行数据绑定的四步走用法:具体实例代码如下:public cl
- 这篇文章说明了如何通过Maven配置Spring依赖项。最新的Spring版本可以在Maven Central上找到。Maven中的Spri
- 1. 二叉树的顺序存储1.1 存储方式使用数组保存二叉树结构,方式即将二叉树用 层序遍历 方式放入数组中。一般只适合表示完全二叉树,这种方式
- 有时候因为安全问题,需要把配置文件的中数据库用户名密码由明文改成密文,大多数其实是为了应付甲方而已。1.pom.xml引入依赖<dep
- 我就废话不多说啦,大家还是直接看代码吧~[ { "orderNo": "3213123123123
- 一、 ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制
- 将C语言封装成函数dll供C#端调用,需要传递的byte数组作为函数参数来传递。1、打开Visual Studio2017创建一个C的dll
- 需求:传入多个 id 查询用户信息,用下边两个 sql 实现:SELECT * FROM USERS WHERE username LIKE