无法在Linux上启动模拟器(Ubuntu 15.10)

Шах*_*Шах 102 android-emulator ubuntu-15.10

我尝试启动模拟器,但它输出到日志:

libGL error: unable to load driver: r600_dri.so 
libGL error: driver pointer missing 
libGL error: failed to load driver: r600 
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: r600_dri.so 
libGL error: driver pointer missing 
libGL error: failed to load driver: r600 
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: r600_dri.so 
libGL error: driver pointer missing 
libGL error: failed to load driver: r600
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 emulator: WARNING: Increasing RAM size to 1GB
Run Code Online (Sandbox Code Playgroud)

怎么解决?我阅读了类似错误的主题,但它对我没有帮助.

exc*_*ted 170

使用系统中可用的libstdc ++.so.6而不是与android sdk捆绑的那个解决了这个问题.

  • 模拟器有一个开关-use-system-libs来执行此操作.

    ~/Android/Sdk/tools/emulator -avd Nexus_5_API_23 -use-system-libs

  • 或者,您可以为您的用户/系统设置ANDROID_EMULATOR_USE_SYSTEM_LIBS环境变量1.这样做的好处是,即使您是在Android Studio中启动模拟器,也可以确保模拟器正常工作.

更多详细信息:https://code.google.com/p/android/issues/detail?id = 197254#c15

  • 在Ubuntu 16.10上,导出ANDROID_EMULATOR_USE_SYSTEM_LIBS = 1`必须添加到`$ HOME/.profile` (19认同)
  • 这是最好的答案,因为模拟器可以通过shell脚本正确启动,而无需移动或链接现有的sdk库. (3认同)
  • 辉煌!这应该是公认的答案. (2认同)

Mor*_*far 123

$ cd Android/Sdk/emulator/lib64/libstdc++
$ mv libstdc++.so.6 libstdc++.so.6.bak
$ ln -s /usr/lib64/libstdc++.so.6
Run Code Online (Sandbox Code Playgroud)

它对我有用

  • 我的libstdc ++.so.6位于/usr/lib/x86_64-linux-gnu/libstdc++.so.6 (6认同)
  • @Joshua - 正确.对于Ubuntu 17.10+,最后一步需要以下内容:$ ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (2认同)

Mar*_*ark 79

看一眼

https://code.google.com/p/android/issues/detail?id=197254

特别是项目#3和#19.这是一种解决方法,而不是一个真正的解决方案,但它让我再次感动.您必须调整以下命令:

  • libstdc++.so.6系统上文件的位置- 我曾经locate libstdc++.so.6发现过这个
  • 模拟器可执行文件的路径
  • 您的模拟器的名称

所以我的命令是

LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libstdc++.so.6' ~/Android/Sdk/tools/emulator -netdelay none -netspeed full -avd Nexus_5_API_21
Run Code Online (Sandbox Code Playgroud)

然后启动模拟器,您可以在运行应用程序时在"设备选择器"对话框中选择它.

  • 我用丑陋的方式解决了这个问题:`cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 $ ANDROID_HOME/tools/lib/libstdc ++/libstdc ++.so.6` (5认同)

小智 51

我在Ubuntu 16.04 64位中有类似的错误.对我来说,答案#23解决方案的伟大工程 https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter %20Opened&GROUPBY =&排序=&ID = 197254

$ cd $ANDROID_HOME/android-sdk-linux_x86/tools/lib64/libstdc++
$ mv libstdc++.so.6 libstdc++.so.6.bak
$ ln -s /usr/lib64/libstdc++.so.6 $ANDROID_HOME/android-sdk-linux_x86/tools/lib64/libstdc++
Run Code Online (Sandbox Code Playgroud)

  • 确认工作,在ubuntu xenial中路径为/usr/lib/x86_64-linux-gnu/libstdc++.so.6 (3认同)

sai*_*jab 29

在AVD设置中的"仿真性能图形"选项中使用"软件".很简单的解决方案


tet*_*tar 21

我这样做,它的工作

cd ~/Android/Sdk/emulator/lib64/libstdc++ 
mv libstdc++.so.6 libstdc++.so.6.bak
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6
Run Code Online (Sandbox Code Playgroud)


小智 10

使用命令locate libstdc ++.so.6更好地找到系统默认的libstdc ++.so.6

然后在〜/ Android/Sdk/tools/lib64/libstdc ++ /中备份该文件的android sdk版本

并为libstdc ++.so.6创建一个软链接,在上面的路径中使用相同的名称替换指向系统中默认文件的现有路径

这样我们每次都不需要从命令行重启模拟器.


Moh*_*shi 9

尝试在模拟器设置中更改图形选项: 在此输入图像描述