Kev*_*son 24 android android-virtual-device android-studio
我在我的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
Run Code Online (Sandbox Code Playgroud)
我尝试了其他AVD,但它们无法正常工作.
sap*_*ler 14
我遇到了与您相同的错误,并设法找到了解决方法.希望这也将解决您的问题.
而不是从Android Studio启动模拟器,打开终端并使用您的Android SDK目录进入工具目录 - 我的是~/Android/Sdk/tools.从那里运行命令:
LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 ./emulator -avd <insert avd name here>
您现在应该可以通过按下绿色运行箭头并选择刚刚启动的模拟器来启动Android应用程序.
有关其工作原理的更多信息,请访问此处
编辑:
经过一番思考之后,我尝试了这个脚本,它似乎工作正常,因此您可以在Android Studio中启动模拟器.它用一个调用它的bash脚本替换了模拟器可执行文件.您需要将工具路径更改为正确的位置.我还建议制作工具目录的备份副本,以防出现问题:
#!/bin/bash
TOOLS_PATH='/home/user/Android/Sdk/tools'
UNEXPANDED_LIB='$LIB'
for emul in ${TOOLS_PATH}/em*
do
cp ${emul} ${emul}-orig
cat <<EOF > ${emul}
#!/bin/bash
LD_PRELOAD='/usr/$UNEXPANDED_LIB/libstdc++.so.6' ${emul}-orig "\$@"
EOF
done
Run Code Online (Sandbox Code Playgroud)
我的情况:我与Debian Jessie和Android Studio 2.2.3合作.我的显卡是Sapphire的ATI Radeon HD 6850.
模拟器说加载图形驱动程序时出现问题(" libGL错误:无法加载驱动程序:r600_dri.so ").由于它是解释在这里,似乎谷歌打包了Android Studio中的一个旧版本的一个图书馆(的libstdc ++.so.6),当它试图使用图形卡的模拟器失败.
解?非常简单:使用系统库而不是Android Studio中打包的系统库.怎么样?在命令末尾添加"-use-system-libs".所以:
./emulator -avd EMULATOR_NAME -netspeed full -netdelay none -use-system-libs
Run Code Online (Sandbox Code Playgroud)
最终解决方案(如果您不想使用终端)是ANDROID_EMULATOR_USE_SYSTEM_LIBS为您的用户/系统将环境变量设置为1.通过此更改,当您在Android Studio中运行模拟器时,它还将加载系统库而不是打包.
PS - 我发现设置环境变量的最简单方法,就是修改启动Android Studio的脚本(studio.sh,在我的情况下是在/ opt/android-stuido/bin里面),并在开头添加:
export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1
Run Code Online (Sandbox Code Playgroud)
更新 2017年12月:我遇到了与Debian Stretch和Android Studio 3.0.1(相同的显卡)相同的问题.同样的解决方案对我有用.
| 归档时间: |
|
| 查看次数: |
17987 次 |
| 最近记录: |