web-dev-qa-db-de.com

Emulator kann nicht unter Linux gestartet werden (Ubuntu 15.10)

Ich versuche den Emulator zu starten, aber er wird in das Protokoll geschrieben

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

Wie man es repariert? Ich lese Themen mit ähnlichen Fehlern, aber es hilft mir nicht.

102
Шах

Schaut mal rein

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

insbesondere die Positionen 3 und 19. Dies ist ein Workaround und keine echte Lösung, aber es hat mich wieder bewegt. Sie müssen den Befehl anpassen für:

  • der Speicherort der libstdc++.so.6-Datei auf Ihrem System. Ich habe locate libstdc++.so.6 verwendet, um dies zu finden
  • der Pfad zur ausführbaren Emulatordatei
  • der Name Ihres Emulators

so war mein Befehl

LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libstdc++.so.6' ~/Android/Sdk/tools/emulator -netdelay none -netspeed full -avd Nexus_5_API_21

Daraufhin wird der Emulator gestartet und Sie können ihn im Dialogfeld "Geräteauswahl" auswählen, wenn Sie Ihre App ausführen.

79
Mark

Durch die Verwendung von libstdc ++ .6.6, die in Ihrem System verfügbar ist, ist das Problem nicht behoben. 

  • Der Emulator hat dazu einen Schalter -use-system-libs

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

  • Alternativ können Sie die Umgebungsvariable Android_EMULATOR_USE_SYSTEM_LIBS für Ihren Benutzer/Ihr System auf 1 setzen. Dies hat den Vorteil, dass der Emulator auch dann funktioniert, wenn Sie ihn in Android Studio starten.

Weitere Informationen: https://code.google.com/p/Android/issues/detail?id=197254#c15

171
exception_noted
$ cd Android/Sdk/emulator/lib64/libstdc++
$ mv libstdc++.so.6 libstdc++.so.6.bak
$ ln -s /usr/lib64/libstdc++.so.6

es hat für mich gearbeitet

123
Mortada Jafar

Ich habe einen ähnlichen Fehler in Ubuntu 16.04 64-Bit . Für mich funktioniert die Antwort # 23 -Lösung großartig https://code.google.com/p/Android/issues/detail ? can = 2 & start = 0 & num = 100 & q = & colspec = ID% 20Status% 20Priority% 20Owner% 20Zusammenfassung% 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++
51
luizMello

Verwenden Sie "Software" in der Option "Emulated Performance Graphics" in den AVD-Einstellungen. Sehr einfache Lösung.

29
saintjab

ich mache das und es funktioniert 

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
20
tetar

suchen Sie besser die Standardeinstellung Ihres Systems libstdc ++. so.6 mit dem Befehl locst libstdc ++. so.6

Und dann machen Sie eine Sicherungskopie der Android-SDK-Version der Datei in ~/Android/Sdk/tools/lib64/libstdc ++ /

Und erstellen Sie einen Softlink für libstdc ++ .6 mit demselben Namen im obigen Pfad, der den vorhandenen ersetzt, der auf die Standarddatei im System verweist

Auf diese Weise müssen wir den Emulator nicht jedes Mal von der Befehlszeile aus neu starten.

10
BuzzR

Versuchen Sie, die Grafikoption in den Emulatoreinstellungen zu ändern:  enter image description here

8
Mohsen Kashi

Ich hatte auch viele Probleme beim Starten von AVD auf meinem Computer. Schwierigkeiten bei der Verwendung von Systembibliotheken, Erstellen von Symlinks zu lokalen Bibliotheken usw.

Was es wirklich funktionierte, war für mich, die NVIDIA-Treiber mit zu installieren

Sudo apt install nvidia-340

Meine Distribution (Anmerkung: Ich verwende kein Ubuntu 15.10):

$ uname -a
Linux ruapehu 4.4.0-38-generic #57-Ubuntu SMP Tue Sep 6 15:42:33 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/issue
Ubuntu 16.04.1 LTS \n \l

Vergewissern Sie sich, dass Sie das für Sie geeignete nvidia-Paket ausgewählt haben, da Ubuntu verschiedene Geschmacksrichtungen bietet. Zum Beispiel:

$ Sudo apt list "nvidia-[0-9][0-9][0-9]" 
Listing... Done
nvidia-304/xenial 304.131-0ubuntu3 AMD64
nvidia-331/xenial 340.96-0ubuntu3 AMD64
nvidia-340/xenial,now 340.96-0ubuntu3 AMD64 [installed]
nvidia-346/xenial 352.63-0ubuntu3 AMD64
nvidia-352/xenial 361.42-0ubuntu2 AMD64
nvidia-361/xenial,now 361.42-0ubuntu2 AMD64

Ich habe die Liste in einer Bottom-up-Strategie getestet, von 361 bis ich eine gefunden habe, die funktioniert (in meinem Fall 340).

Hoffentlich hilft das.

0

In meinem Fall (Ubuntu 16.10 64-Bit, Android Studio 2.3) befanden sich die Bibliotheken an einem anderen Ort. Befehle sind also:

/home/myusername/Android/Sdk/emulator/lib64/libstdc++

➜  libstdc++ ll
total 9,3M
-rwxr-xr-x 1 myusername myusername 4,6M мар 21 00:09 libstdc++.so.6
-rwxr-xr-x 1 myusername myusername 4,6M мар 21 00:09 libstdc++.so.6.0.18

➜  libstdc++ mv libstdc++.so.6 libstdc++.so.6.bak
➜  libstdc++ mv libstdc++.so.6.0.18 libstdc++.so.6.0.18.bak
➜  libstdc++ ln -s /usr/lib32/libstdc++.so.6 /home/myusername/Android/Sdk/emulator/lib64/libstdc++ 
➜  libstdc++ ln -s /usr/lib32/libstdc++.so.6.0.22 /home/myusername/Android/Sdk/emulator/lib64/libstdc++ 

➜  libstdc++ ll
total 9,3M
lrwxrwxrwx 1 myusername myusername   25 мар 29 13:18 libstdc++.so.6 -> /usr/lib32/libstdc++.so.6
-rwxr-xr-x 1 myusername myusername 4,6M мар 21 00:09 libstdc++.so.6.0.18.bak
lrwxrwxrwx 1 myusername myusername   30 мар 29 13:19 libstdc++.so.6.0.22 -> /usr/lib32/libstdc++.so.6.0.22
-rwxr-xr-x 1 myusername myusername 4,6M мар 21 00:09 libstdc++.so.6.bak

Und jetzt wird der Emulator normalerweise vom AVD-Manager gestartet.

0
porfirion

Ich hatte ähnliche Probleme bei der Verwendung von i965_dri.so und swrast_dri.so, ich konnte in der GUI nicht zu Software-Grafiken wechseln.

Also ging ich zum Emulator-Ordner (Show on Disk link in AVDM) und fand den config.ini

Hier habe ich nur die folgende Zeile geändert, um die Verwendung der GPU zu verhindern:

hw.gpu.enabled=no
0
jkbadsberg

Dies ist in Android Emulator 27.2.9 behoben. Sehen Sie sich das erste Update an, das hier aufgeführt ist: https://developer.Android.com/studio/releases/emulator#fixes

0
Todd_Kopriva