Android工作室越野车升级到16.10后

我最近从16.04 LTS升级到我的android工作室正常工作到16.10但是在尝试运行我的avd模拟器时,这是我回来的错误日志

Cannot launch AVD in emulator. Output: libGL error: unable to load driver: i965_dri.so libGL error: driver pointer missing libGL error: failed to load driver: i965 libGL error: unable to load driver: i965_dri.so libGL error: driver pointer missing libGL error: failed to load driver: i965 libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast X Error of failed request: GLXBadContext Major opcode of failed request: 155 (GLX) Minor opcode of failed request: 6 (X_GLXIsDirect) Serial number of failed request: 55 Current serial number in output stream: 54 libGL error: unable to load driver: i965_dri.so libGL error: driver pointer missing libGL error: failed to load driver: i965 libGL error: unable to load driver: i965_dri.so libGL error: driver pointer missing libGL error: failed to load driver: i965 libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast X Error of failed request: GLXBadContext Major opcode of failed request: 155 (GLX) Minor opcode of failed r 

在最近的android工作室更新中,谷歌使用的libstdc++与系统上安装的intel驱动程序不兼容

如果没有系统lib64stdc++6mesa-utils则首先必须安装以下软件包

 sudo apt-get install lib64stdc++6 mesa-utils 

然后将库符号链接到android sdk工具路径

 ## For the /Sdk/tools path cd ~/Android/Sdk/tools/lib64/libstdc++ # making a copy of the file sudo mv libstdc++.so.6 libstdc++.so.6.og # symlink sudo ln -s /usr/lib64/libstdc++.so.6 ~/Android/Sdk/tools/lib64/libstdc++ ## For the /Sdk/emulator path cd ~/Android/Sdk/emulator/lib64/libstdc++ # making a copy of the file sudo mv libstdc++.so.6 libstdc++.so.6.og # symlink sudo ln -s /usr/lib64/libstdc++.so.6 ~/Android/Sdk/emulator/lib64/libstdc++ 

我在Ubuntu 17.04上也有这个问题,这就是我所做的。

使用您喜欢的文本编辑器编辑.profile

 atom ~/.profile 

将其附加到文件末尾

 export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1 

来源:Android SDK环境变量

从终端运行模拟器

 emulator -use-system-libs -avd YOUR_VIRTUAL_DEVICE_NAME 

另一个简单的解决方法是在Android sdk目录中的emulator文件夹中重命名libstdc ++。 它将回退到系统库(需要安装)。 在Ubuntu 17.10上,这对我来说真的很有效。

更新模拟器。

 Tools -> SDK Manager -> SDK Tools -> Android Emulator 

在此处输入图像描述

这是一个在27.2.9中修复的错误。

Android Emulator的Linux版本现在使用现代的Clang C ++工具链构建。 此更改修复了由于libGL和libstdc ++错误导致模拟器无法启动的问题。


仅供参考:BTW手动创建符号链接并不是一个好主意。 设置ANDROID_EMULATOR_USE_SYSTEM_LIBS是一种更好的方法。 但是,当您只是更新模拟器时,这也没有必要。

我将图形加速从汽车/硬件切换到软件。 导致此问题的驱动程序仅需要使用真实硬件进行图形加速。 除非您在游戏或其他图形密集型软件上工作,否则您不需要这样做。 这必须在每个adv上完成,但一旦完成就保持设置。

这个链接有帮助。 我确实修改了libstdc ++的位置。所以基于我的Ubuntu 17.10安装。 libstdc ++。so文件位置不同。 在您的计算机中搜索libstdc ++

Ubuntu 17.10和Android Studio 3.1

 cd /opt/android-sdk/emulator/lib64/libstdc++ mv libstdc++.so.6{,.bak} mv libstdc++.so.6.0.19{,.bak} ln -s /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.so