我在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,但他们不能工作。
答案 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