解决ubuntu上在androidstudio中启动emulator闪退的问题(1)

时间:2021-01-19 17:54:24

作者

彭东林

pengdonglin137@163.com

平台

Ubuntu14.04 64

androidstudio 2.3.3

现象

在创建好模拟器后,点击启动时,模拟器界面刚出来就闪退了

解决

由于是在图形界面点击启动的,看不到任何出错的log,所以我们需要使用命令行启动emulator的方式,这样会把出错的信息打印出来。

1、查看我们创建的模拟器的名字:

解决ubuntu上在androidstudio中启动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的方式:

解决ubuntu上在androidstudio中启动emulator闪退的问题(1)

如上图所示,选择Software-GLES 2.0

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

解决ubuntu上在androidstudio中启动emulator闪退的问题(1)

完。