[英]Android Studio AVD error launching
我在我的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,但它們無法正常工作。
您還可以在AVD設置中的“仿真性能圖形”選項中使用“軟件”
我遇到了與您相同的錯誤,並設法找到了解決方法。 希望這也將解決您的問題。
而不是從Android Studio啟動模擬器,打開終端並使用您的Android SDK目錄進入tools目錄 - 我的是~/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
我的情況:我與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
最終解決方案(如果您不想使用終端)是為您的用戶/系統將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(相同的顯卡)相同的問題。 同樣的解決方案對我有用。
在終端中輸入以下內容(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 /)。
我在Ubuntu 16.04 LTS和Android Studio 2.3.2上遇到了完全相同的問題,我通過在終端窗口中執行以下操作解決了這個問題:(注意:我在網上的其他地方看到了這個但是我不記得我在哪里可以在信用到期時給予信貸)
sudo apt list "*nvidia-[0-9][0-9][0-9]"
我的回歸:nividia-346 nividia-352 nividia-361 nividia-367 nividia-375
然后,我為每個返回的內容運行以下內容:
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
然后重啟Ubuntu,一切正常。
我是ubuntu 16.04 android studio 3,
ln -s $Android/Sdk/emulator/lib64/libstdc++/libstdc++.so.6.0 $Android/Sdk/tools/lib64/libstdc++
我在〜/ Android / Sdk / emulator / lib64 / libstdc ++ /中找到了我的libstdc ++。so.6,
但android studio會發現〜/ Android / Sdk / tools / lib64 / libstdc ++ /
在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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.