Ich verwende Ubuntu 12.04 (Precise Pangolin) mit dem Oracle JDK 7 und wenn ich den Android-Emulator von Eclipse aus starte , wird folgender Fehler angezeigt:
[2012-07-04 02:52:10 - Emulator] error libGL.so: cannot open shared object file: No such file or directory
[2012-07-04 02:52:10 - Emulator] Failed to load libGL.so
Auch der Emulator ist sehr langsam. Wie kann ich dieses Problem lösen?
locate libGL
zuerst kann helfenfind / -name 'libGL.so.1'
und es in sich/usr/lib/x86_64-linux-gnu
aufdebian jessie
.Gehen Sie unter 64-Bit-Ubuntu 12.04 folgendermaßen vor:
Quelle: Installation der erforderlichen Pakete (Ubuntu 12.04)
quelle
sudo apt-get install --reinstall gcc-4.7-multilib
wie ich ihn unter answer askubuntu.com/a/236114Ich benutze Ubuntu 12.04 64-Bit. Verwenden Sie den folgenden Befehl, um das Problem zu lösen
Hinweis : Dies gilt nur für diejenigen, die die AMD / ATI-Grafiktreiber verwenden.
quelle
Für 32-Bit-Ubuntu 12.04 LTS funktionierte dies:
Keine der folgenden Funktionen hat funktioniert:
quelle
Was für mich funktioniert (Ubuntu 12.04 64bit) war nur zu laufen:
Ich habe festgestellt, dass
libGL.so
im Verzeichnis existiert/usr/lib/x86_64-linux-gnu/
Die Installation der 32-Bit-Version funktionierte nicht.
quelle
Unter 64-Bit-Ubuntu 12.04 gibt es kein / usr / lib64. Es ist nur / usr / lib. Außerdem ist libGL.so auf meinem Computer nicht vorhanden. Stattdessen lautet die Datei libGLEW.so
Um /usr/lib/LibGL.so zu installieren, können Sie Folgendes ausführen: sudo apt-get install libgl1-mesa-dev
Es hat das Problem jedoch nicht für mich gelöst. In der Tat hat es wahrscheinlich mein System vermasselt.
quelle
Dies funktionierte für mich unter 64-Bit-Ubuntu 12.10 und dem ADT-Bundle:
Wenn Sie nicht
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
nur installieren müssenlibgl1-mesa-glx
quelle
Ich glaube, ich habe es richtig verstanden, keine Warnungen und keine Langsamkeit ... Dies funktioniert jedoch möglicherweise nicht mit proprietären Treibern.
Stellen Sie sicher, dass libgl1-mesa-glx: i386 installiert ist (auch wenn Sie eine x64-SO-Datei haben). Dann mach:
quelle
NVidia Optimus:
Ich habe auf zwei Grafiken (Intel und NVIDIA) Folgendes verwendet:
Dies sollte den Trick tun:
Wenn Sie den Emulator ausführen möchten, verwenden Sie einfach optirun:
Ich sollte eine Warnung geben, dass ich erst gestern Linux installiert habe. Also weiß ich nicht wirklich was ich tue ...
quelle
Unter Bezugnahme auf http://developer.android.com/sdk/installing/index.html habe ich ia32-libs installiert und Folgendes ausgeführt:
Das ist alles, was ich getan habe, um dieses Problem zu lösen.
quelle
/usr/lib/x86_64-linux-gnu/mesa
stattdessen verwendenIch benutze Linux Mint 14 - 64 Bit und für mich hat es funktioniert :):
quelle
Unter Ubuntu 12.04 64-Bit, GNOME 3.4, habe ich zuerst auf http://developer.android.com/sdk/installing/index.html verwiesen und ia32-lib installiert, wodurch / usr / lib / i386-linux-gnu generiert wird /mesa/libGL.so.1.2.0
Dann führe ich den folgenden Befehl aus und habe dieses Problem gelöst:
Dies unterscheidet sich geringfügig von der Antwort der Gridstation.
Ich denke, es ist nicht erforderlich, den Mesa-Treiber lokal zu installieren, was zu Problemen mit Ihren echten Grafiktreibern führen kann.
quelle
Unter Ubuntu 64 Bit
1. Überprüfen Sie libGL,
2. Erstellen Sie einen Symlink, auf dem das SDK installiert ist
quelle
Damit es auf einem Ubuntu 12.10 (Quantal Quetzal) 64-Bit funktioniert, müssen Sie zwei Dinge tun:
1) Sie müssen LD_LIBRARY_PATH initialisieren.
Beispiel:
Kommentare: Ändern Sie den Pfad zu Ihrem Standort
2) Sie müssen eine symbolische Verknüpfung erstellen
a) Verwenden Sie
locate libGL
, um die richtige Bibliothek zu finden:b) Erstellen Sie den Softlink
Kommentare: Verwenden Sie eine 64-Bit-Bibliothek unter einem 64-Bit-Betriebssystem!
Starten Sie jetzt den Emulator. Mein System ist Optimus und ich habe Bumblebee installiert . Ich kann "Intel Open Source Technology Center", "Mesa DRI Intel (R) Ironlake Mobile", "2.1 Mesa 9.0" oder "NVIDIA Corporation", "GeForce GT 330M / PCIe / SSE2", "3.3.0 NVIDIA 304.43" verwenden.
a) Intel
b) Nvidia
Bemerkungen:
verbose
ist der Parameter, mit dem weitere Diagnosen angezeigt werdenoptirun
ist der Befehl, die Nvidia on Bumblebee zu nutzen. Wenn Sie keine Hummel haben, benutzen Sie sie nicht!avd
ist ein virtuelles Gerätgpu on
um die Grafikkarte zu nutzenquelle
OSError: libGL.so: Freigegebene Objektdatei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis
Es kann auf Linux-Systemen angezeigt werden, wenn Sie versuchen, VNL zum ersten Mal zu starten. Um es zu lösen, erstellen Sie (als Administrator) einen neuen Link in
/usr/lib
:Wenn Sie ein 64-Bit-Linux haben, verwenden Sie
/usr/lib64 instead
.Überprüfen Sie zuerst, ob Sie tatsächlich
libGL.so.1.2
in/usr/lib
oder haben/usr/lib64
;libGL.so.1
Abhängig von den Grafiktreibern kann es stattdessen aufgerufen werden oder sich in einem anderen Verzeichnis befinden.Sie können
libGL
find verwenden, um die richtige Datei zu finden, zu der ein Link erstellt werden soll.quelle
Ich hatte das gleiche Problem. Aber in meinem Fall habe ich es auf eine andere (ich denke, bessere) Weise gelöst.
In meiner Situation (Lubuntu 13.10) war es ausreichend, die Bibliothek einfach auch
libgl1-mesa-dev
über den Synaptic Package Manager zulibgl1-mesa-dri
installieren (die Bibliothek wurde bereits standardmäßig installiert, als die Lubuntuu-Distribution eingerichtet wurde).Das löst den Aufwand, Links von einer Datei zur anderen zu setzen, und verhindert auch die Verschmutzung Ihres Systems:
Wenn Sie den "Systemmechanismus" verwenden, ist alles für Sie erledigt. Und richtig gemacht. Deshalb gibt es diese Tools überhaupt erst.
Beste rgds,
quelle
Ähnlich wie bei user1289608 konnte ich einen Sym-Link aus einer vorhandenen Installation von Mesa erstellen:
quelle
Ich benutze Ubuntu 12.04 64-Bit. Das Verknüpfen
/usr/lib64/libGLC.so.0
mit/usr/lib64/libGL.so
scheint das Problem zu lösen.EDIT: Es stoppt die Fehlermeldungen, aber der Emulator ist für mich immer noch langsam.
quelle
Das hat bei mir funktioniert:
Starten Sie die ADB vom DDMS aus neu:
In Eclipse: Fenster> Perspektive öffnen ...> Andere> DDMS. Wählen Sie den Emulator im linken Bereich aus und wählen Sie "adb neu starten".
Sie können den ADB-Server auch über das Terminalfenster neu starten.
quelle
Ich habe den Ordner für libGL mit dem Befehl "find" gefunden.
Es stellte sich heraus, dass es sich in / usr / lib / i386-linux-gnu / befand.
quelle
Für meine Debian 7 'Wheezy'-Installation habe ich den folgenden Befehl verwendet:
quelle
das ist es!
quelle
Ich hatte dieses Problem, weil ich beim Erstellen meiner AVD "Host-GPU verwenden" aktiviert hatte. Ich habe es mit dieser Option deaktiviert und konnte den Emulator erfolgreich starten. Dies ist für meine Testzwecke akzeptabel, aber wenn die Verwendung der Host-GPU wichtig ist, möchten Sie wahrscheinlich einige der anderen Lösungen hier ausprobieren.
quelle
Ich hatte das gleiche Problem. Durch die Neuinstallation des Nvidia- Treibers wurde der Segmentierungsfehler für mich behoben .
quelle
Ich habe dieses Problem gelöst, indem ich libgl1 neu installiert habe, sowohl die 64- als auch die 32-Bit-Bibliothek:
Hintergrund: Zuvor habe ich vom kostenlosen Radeon-Treiber zurück zu fglrx gewechselt. Ich denke, das hat meine libgl1 irgendwie durcheinander gebracht, weil fglrx mit einer eigenen Version geliefert wird.
Außerdem denke ich, dass die anderen hier bereitgestellten Lösungen möglicherweise gefährlich sind, da es falsch ist, gemeinsam genutzte 32-Bit-Bibliotheken in das Verzeichnis (64 Bit) / lib / zu verknüpfen.
quelle
Überprüfen Sie, ob Sie
libgl1-mesa-*
Pakete installiert haben. Wenn ja, installieren Sie daslibgl1-mesa-dev
Paket, um die nicht versionierten freigegebenen Objekte abzurufen.Sie sollten dies nicht tun müssen - es ist der Fehler des Android-Teams. Geben Sie ihnen eine Pause, sie sind nur Java-Entwickler.
quelle