当前位置: 首页>>技术教程>>正文


升级到 16.10 后的 Android Studio 错误

问题描述

我最近从 16.04 LTS 升级到 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 studio更新中,google使用了一个与系统安装的intel驱动不兼容的libstdc++

如果系统上没有 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

Source: Android SDK Environment Variable

第三种思路

从终端运行模拟器

emulator -use-system-libs -avd YOUR_VIRTUAL_DEVICE_NAME

第四种思路

另一个简单的解决方法是重命名 Android sdk 目录中模拟器文件夹中的 libstdc++。它将回退到系统库(需要安装)。我在 Ubuntu 17.10 上的 ‘just worked’。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12714.html,未经允许,请勿转载。