Android Studio AVD错误启动

时间:2016-03-23 21:52:40

标签: android android-studio avd

我在Ubuntu 15.10 PC上下载了一个Nexus 6P API23仿真器。当我尝试启动它时,它会失败并弹出一个对话框并说:

(AVD配置:Nexus 6P API 23 x86 - 硬件GLES 2.0图形)

Cannot launch AVD in emulator.
Output:
libGL error: unable to load driver: nouveau_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: nouveau
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:  47
  Current serial number in output stream:  46
libGL error: unable to load driver: nouveau_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: nouveau
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:  47
  Current serial number in output stream:  46
libGL error: unable to load driver: nouveau_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: nouveau
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  155 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  33
  Current serial number in output stream:  34
QObject::~QObject: Timers cannot be stopped from another thread

我尝试了其他AVD,但他们不能工作。

7 个答案:

答案 0 :(得分:53)

您还可以在AVD设置

中的仿真性能图形选项中使用“软件”

答案 1 :(得分:14)

我遇到了与您相同的错误,并设法找到了解决方法。希望这也将解决您的问题。

不是从Android Studio启动模拟器,而是打开终端并使用Android SDK目录进入tools目录 - 我的是 a = np.asarray([1,2,3]) b = np.asarray([2,3,4,5]) a.reshape(3,1) 。从那里运行命令:

~/Android/Sdk/tools

现在,您应该可以通过按下绿色运行箭头并选择刚刚启动的模拟器来启动Android应用程序。

有关其工作原理的更多信息,请转到here

编辑:

经过一番思考之后,我尝试了这个脚本,它似乎工作正常,因此您可以在Android Studio中启动模拟器。它用一个调用它的bash脚本替换了模拟器可执行文件。您需要将工具路径更改为正确的位置。我还建议制作工具目录的备份副本,以防出现问题:

LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 ./emulator -avd <insert avd name here>

答案 2 :(得分:7)

我的情况:我与Debian Jessie和Android Studio 2.2.3合作。我的显卡是Sapphire的ATI Radeon HD 6850。

模拟器说加载图形驱动程序时出现问题(“ libGL错误:无法加载驱动程序:r600_dri.so ”)。正如here所解释的那样,谷歌似乎与Android Studio一起打包了一个库的旧版本( libstdc ++。so.6 ),并且模拟器在尝试使用图形时失败了卡。

解决方案?非常简单:使用系统库而不是Android Studio中打包的系统库。怎么样?在命令末尾添加“-use-system-libs”。所以:

./emulator -avd EMULATOR_NAME -netspeed full -netdelay none -use-system-libs

最终解决方案(如果您不想使用终端)是为您的用户/系统将ANDROID_EMULATOR_USE_SYSTEM_LIBS环境变量设置为1。通过此更改,当您在Android Studio中运行模拟器时,它还将加载系统库而不是打包。

PS - 我发现设置环境变量的最简单方法,就是修改启动Android Studio的脚本( studio.sh ,在我的情况下它位于 / opt / android-stuido / bin ),并在开头添加:

export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1

更新 2017年12月:我遇到了与Debian Stretch和Android Studio 3.0.1(同一图形卡)相同的问题。同样的解决方案对我有用。

答案 3 :(得分:1)

在终端中输入以下内容(Ctrl-Alt-T)为我解决了这个问题:

cd $Android/Sdk/tools/lib64/libstdc++
mv libstdc++.so.6 libstdc++.so.6.bak
ln -s /usr/lib64/libstdc++.so.6

这显然创建了一个符号链接。该解决方案取自https://code.google.com/p/android/issues/detail?id=197254#c23的第23行。

您可能需要根据您的安装更改文件的路径(即原始路径使用路径ANDROID_HOME / android-sdk-linux_x86 /而我的安装只是Android / Sdk /)。

答案 4 :(得分:0)

我在Ubuntu 16.04 LTS和Android Studio 2.3.2上遇到了完全相同的问题,我通过在终端窗口中执行以下操作解决了这个问题: (注意:我在网上的其他地方看到了这个,但我不记得哪里可以在信用到期时给予信用)

sudo apt install nvidia-375
sudo apt install nvidia-367
sudo apt install nvidia-361
sudo apt install nvidia-352
sudo apt install nvidia-346
我回来了: NIVIDIA-346 NIVIDIA-352 NIVIDIA-361 NIVIDIA-367 NIVIDIA-375

然后我为每个返回的内容运行以下内容:

application.yml

然后重新启动Ubuntu,一切正常。

答案 5 :(得分:0)

我是ubuntu 16.04 android studio 3,

ln -s $Android/Sdk/emulator/lib64/libstdc++/libstdc++.so.6.0  $Android/Sdk/tools/lib64/libstdc++ 

我找到了我的libstdc ++。so.6  在〜/ Android / Sdk / emulator / lib64 / libstdc ++ /

但android studio会找到〜/ Android / Sdk / tools / lib64 / libstdc ++ /

答案 6 :(得分:0)

在Debian Stretch(Android Studio 3.0.1 / Android Emulator 27.1.12)上我遇到了同样的问题并应用了以下修复:

sudo apt-get install libstdc++6:amd64
cd ~/Android/Sdk/emulator/lib64/libstdc++
mkdir old
mv libstdc* old
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6
相关问题