解决ubuntu上在androidstudio中启动emulator闪退的问题(1)
作者
彭东林
pengdonglin137@163.com
平台
Ubuntu14.04 64
androidstudio 2.3.3
现象
在创建好模拟器后,点击启动时,模拟器界面刚出来就闪退了
解决
由于是在图形界面点击启动的,看不到任何出错的log,所以我们需要使用命令行启动emulator的方式,这样会把出错的信息打印出来。
1、查看我们创建的模拟器的名字:

从上图看到模拟器的名字是: 32_QVGA_ADP2_API_25
2、找到android sdk中模拟器
对于我的机器,模拟器存放在/home/pengdonglin/disk_ext/Android_Latest/android_sdk/emulator
3、命令行运行模拟器
$./emulator64-x86 -avd 32_QVGA_ADP2_API_25
./emulator64-x86: /usr/lib/x86_64-linux-gnu/libQt5Core.so.: no version information available (required by ./emulator64-x86)
./emulator64-x86: /usr/lib/x86_64-linux-gnu/libQt5Core.so.: no version information available (required by ./emulator64-x86)
./emulator64-x86: /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.: no version information available (required by ./emulator64-x86)
./emulator64-x86: /usr/lib/x86_64-linux-gnu/libQt5Gui.so.: no version information available (required by ./emulator64-x86)
./emulator64-x86: relocation error: ./emulator64-x86: symbol qt_version_tag, version Qt_5. not defined in file libQt5Core.so. with link time reference
上网搜索后,得到如下解决办法:
从网上下载Qt5.7的代码(qt-opensource-linux-x64-5.7.0.run),然后安装,将Qt5.7中含有上面的库的路径添加到环境变量中,我的是:
export LD_LIBRARY_PATH=/home/pengdonglin/Qt5.7.0/5.7/gcc_64/lib:$LD_LIBRARY_PATH
将上面的配置添加到.bashrc中,然后将其生效。
再次运行,得到如下出错信息:
$./emulator64-x86 -avd 32_QVGA_ADP2_API_25
sh: : glxinfo: not found
Failed to open lib64EGL_translator: [lib64EGL_translator.so: cannot open shared object file: No such file or directory]
gles2_dispatch_init: Could not load lib64GLES_V2_translator [lib64GLES_V2_translator.so: cannot open shared object file: No such file or directory]
emulator: ERROR: Could not load OpenGLES emulation library [lib64OpenglRender]: lib64OpenglRender.so: cannot open shared object file: No such file or directory
emulator: ERROR: Could not initialize OpenglES emulation, use '-gpu off' to disable it.
提示缺少上面的库,其实这些库就在模拟器所在的目录的lib64下,同样将该路径添加到环境变量中:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/pengdonglin/disk_ext/Android_Latest/android_sdk/emulator/lib64
生效后,再次运行,又得到如下错误信息:
$./emulator64-x86 -avd 32_QVGA_ADP2_API_25
sh: : glxinfo: not found
failed to create drawable
getGLES2ExtensionString: Could not create GLES .x Pbuffer!
Failed to obtain GLES .x extensions string!
Could not initialize emulated framebuffer
emulator: ERROR: Could not initialize OpenglES emulation, use '-gpu off' to disable it.
这里有两种解决办法:
第一种: 根据提示,在命令行后添加 -gpu off
第二种: 修改我们创建的模拟器配置,使用软件模拟GLES的方式:

如上图所示,选择Software-GLES 2.0
再次运行,发现可以成功运行了,而且没有报任何错误,而且此时再在图形界面里点击启动按钮也是可以正常启动模拟器的。

完。
解决ubuntu上在androidstudio中启动emulator闪退的问题(1)的更多相关文章
- 解决ubuntu上在androidstudio中启动emulator闪退的问题(2)
平台 Ubuntu14.04 64 现象 在AndrodStudio中点击模拟器的启动按钮后,模拟器界面弹出后,又立刻闪退. 解决 一.查看模拟器的信息 从上面可以看到模拟器的存放路径以及名称: 路径 ...
- [异常解决] ubuntu上安采用sudo启动的firefox,ibus输入法失效问题解决
采用sudo启动的应用是root权限的应用, ibus失效是因为ibus的初始配置采用user权限: 而root下运行的firefox输入法的配置还是停留在默认情况~ 解决方案是在shell下以roo ...
- 一文彻底解决Ubuntu上PHP的安装以及版本切换
Ubuntu上官方的源,比如 Ubuntu14.04 默认源中的是 PHP5.6.x.Ubuntu16.04 默认源中的是 PHP7.0.x,那么如果想在 Ubuntu16.04 上安装 PHP7.1 ...
- 8. 启动Tomcat闪退无法启动原因解决
原因可能是由于下面问题导致的: 1.Tomcat环境在不同电脑上引用的jdk路径不同 比如:在A电脑上Tomcat引用的jdk路径为:C:\Java\jdk1.6.0_10 而在B电脑上jdk的安装路 ...
- MongoDB mongo.exe启动及闪退解决 转载
转载自:http://blog.csdn.net/wyx_wx/article/details/76108662 启动: 进入MongoDB安装目录下的bin目录,启动mongod.exe 出现如图所 ...
- 全网最详细的Windows里Anaconda-Navigator启动后闪退的解决方案(图文详解)
不多说,直接上干货! 问题详情 点击 出现Anaconda-Navigator启动后闪退的现象. 或者 装过一次anaconda,貌似按了一个更新的键就打不开了.navigator这个打不开,会停留 ...
- Android中处理崩溃闪退错误
Android中处理崩溃闪退异常 大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试, ...
- android app启动就闪退怎么办?
开发过程中,如遇到android app启动就闪退,不要急,直接进入调试模式运行app,就会取得出错的原因. http://blog.sina.com.cn/s/blog_44fa172f0102wg ...
- mac osx 启动wireshark闪退
wireshark启动会提示安装x11 去x11地址安装后 启动还是闪退 原来是姿势不对 这样才行~~ 这一步 这个路径一定要对!路径一定要对!路径一定要对! 然后报错不用管它,如果没反应了,就继续等 ...
随机推荐
- apiCloud app调用浏览器打开网页的方法
在APP调用浏览器有两种方法:1.使用openApp2.使用openWin 两种方法调用浏览器后的效果有一点不同:1.使用openApp调用浏览器后,如果手机内有多个浏览器,会首先弹出选择浏览器的框2 ...
- java iterator
list l = new ArrayList(); l.add("aa"); l.add("bb"); l.add("cc"); for ( ...
- ASP.NET应用技巧:非托管COM组件的使用
众所周知,asp.net是基于通用语言运行库创建的,也就是所谓的托管执行环境.生成的代码称为托管代码.编译器能够从源代码的描述中产生元数据信息,而运行库又从元数据中获得托管代码的信息.而我们编写的组件 ...
- [转] caffe激活层及参数
在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的.从bottom得到一个blob数据输入,运算后,从top输入一个blob数据.在运算过程中,没有改变数据的大小,即输入 ...
- ECS Navicat for MySQL远程连接报10038的错误
解决问题时,建议先在阿里云设置好数据库访问的白名单,把自己的IP地址填进去 问题现象 Navicat for MySQL访问远程mysql数据库,出现报错,显示“2003- Can't connect ...
- NodeJS学习:环境变量
简介 环境变量(environment variables) 不属于 NodeJS 范畴,它是操作系统用于设定执行环境的参数.会在程序运行时传递给应用程序. NodeJS 获取环境变量,是通过 glo ...
- 【noip模拟赛3】拣钱
描述 最近,Henry由于失恋(被某大牛甩掉!)心情很是郁闷.所以,他去了大牛家,寻求Michael大牛的帮助,让他尽快从失恋的痛苦中解脱出来.Michael大牛知道Henry是很爱钱的,所以他是费尽 ...
- ubantu下如何完全彻底卸载mysql(转)
ubantu下如何完全彻底卸载mysql https://blog.csdn.net/wszll_Alex/article/details/46277681 第1步 依次执行下面的语句 1 sud ...
- ES8之async/await学习随笔
详细学习参考文档: 阮一峰老师的博客,覆盖知识点ES6/7/8/9,本篇学习笔记对阮老师的关于async/await文档中的知识点进行分点总结 在ES8中加入async/await新特性后,很明显带来 ...
- JDBC之 连接池
JDBC之 连接池 有这样的一种现象: 用java代码操作数据库,需要数据库连接对象,一个用户至少要用到一个连接.现在假设有成千上百万个用户,就要创建十分巨大数量的连接对象,这会使数据库承受极大的压力 ...