在Ubuntu上运行,我收到此错误:
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: 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
平台工具是最新的。
模拟器图片使用https://dl.google.com/android/repository/sys-img/google_apis/x86_64-24_r08.zip
,它位于Android N上。
更新(2016年12月2日): @Sébastien的解决方案不再有效,但给出了:
Cannot launch AVD in emulator.
Output:
failed to create drawable
getGLES2ExtensionString: Could not create GLES 2.x Pbuffer!
Failed to obtain GLES 2.x extensions string!
Could not initialize emulated framebuffer
emulator: Listening for console connections on port: 5554
emulator: Serial number of this emulator (for ADB): emulator-5554
emulator: ERROR: Could not initialize OpenglES emulation, use '-gpu off' to disable it.
emulator: WARNING: ./android/metrics/metrics_reporter.cpp:142: Failed to get a writable, unused path for metrics. Tried: /home/me/.android/avd/metrics/metrics.17386.yogibear
如果我禁用基于GPU的渲染并切换到基于软件的GL图形,则会出现此运行时错误:
Firebase API initialization failure.
DeadSystemException: The system died; earlier logs will point to the root cause
FATAL EXCEPTION: main
Process: com.whatever.mobile, PID: 4501
DeadSystemException: The system died; earlier logs will point to the root cause
答案 0 :(得分:20)
有同样的问题,我的修复是设置以下env变量:
导出ANDROID_EMULATOR_USE_SYSTEM_LIBS = 1
在我的情况下,我把它放在〜/ .bashrc中。 随着发送,我像往常一样启动模拟器,即从命令行:
$ emulator -avd Nexus_4_API_23
看起来它是Android错误跟踪器中跟踪的常见问题:https://code.google.com/p/android/issues/detail?id=197254
答案 1 :(得分:9)
我只是面对同样的错误,只是删除$ANDROID_HOME/tools/lib64/libstdc++/*
为我工作。 16.10(6.0.22)附带的libstdc ++版本大于sdk工具(6.0.18)附带的版本,我认为它会与其他库产生冲突。
答案 2 :(得分:3)
该问题与l ibstdc ++。so.6 有关,请转到Android SDK,可以使用以下命令解决:
cd ~/...../sdk/tools/lib64/libstdc++
mv libstdc++.so.6 libstdc++.so.6_OLD
ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6
信用:https://code.google.com/p/android/issues/detail?id=197254#c43
答案 3 :(得分:0)
我一直在努力解决这个问题,答案是正确的,只是应用方法花了我时间弄清楚:
(作为Root)我运行了:找到libstdc ++。so.6
然后使用当前lib WITH VERSION和LOCATION的结果列表 我将mv / rm应用于Android SDK附带的(〜/ Android / Sdk / emulator / lib / libstdc ++ / libstdc ++。so.6),然后从系统链接(/ usr / lib) /i386-linux-gnu/libstdc++.so.6或/usr/lib/x86_64-linux-gnu/libstdc++.so.6或/usr/lib32/libstdc++.so.6取决于您的系统)