에뮬레이터를 시작하려고하지만 로그에 출력됩니다.
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
그것을 고치는 방법? 비슷한 오류가있는 주제를 읽었지만 도움이되지 않습니다.
답변
보세요
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
그러면 에뮬레이터가 시작되고 앱을 실행할 때 ‘Device Chooser’대화 상자에서 선택할 수 있습니다.
답변
android sdk와 함께 번들로 제공되는 대신 시스템에서 사용 가능한 libstdc ++. so.6을 사용하면이 문제가 해결됩니다.
-
에뮬레이터에는이를위한 스위치
-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
답변
$ cd Android/Sdk/emulator/lib64/libstdc++
$ mv libstdc++.so.6 libstdc++.so.6.bak
$ ln -s /usr/lib64/libstdc++.so.6
그것은 나를 위해 일했다
답변
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 = & sort = & 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++
답변
AVD 설정의 Emulated Performance Graphics 옵션에서 “소프트웨어”를 사용합니다. 아주 간단한 해결책.
답변
나는 이것을하고 작동한다
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
답변
find libstdc ++. so.6 명령을 사용하여 시스템 기본 libstdc ++. so.6을 더 잘 찾습니다.
그런 다음 ~ / Android / Sdk / tools / lib64 / libstdc ++ /에있는 파일의 Android sdk 버전을 백업합니다.
그리고 시스템의 기본 파일을 가리키는 기존 경로를 대체하는 위 경로에 동일한 이름으로 libstdc ++. so.6에 대한 소프트 링크를 만듭니다.
이렇게하면 명령 줄에서 매번 에뮬레이터를 다시 시작할 필요가 없습니다.