webentwicklung-frage-antwort-db.com.de

emulator: WARNUNG: OpenglES-Emulation konnte nicht mit dem Software-Renderer initialisiert werden

Was bedeuten diese Fehlermeldungen vom Android-Emulator?

Starting emulator for AVD 'AVD'
Failed to create Context 0x3005
could not get wglGetExtensionsStringARB
emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
could not get wglGetExtensionsStringARB
28
user2118445

Beim Starten des Emulators über die Befehlszeile - $ emulator64-arm -avd GalaxyS2 - erhielt ich eine ähnliche (und möglicherweise/hoffentlich) ähnliche Meldung:

emulator: ERROR: OpenGLES-Emulationsbibliothek konnte nicht geladen werden: lib64OpenglRender.so: Freigegebene Objektdatei kann nicht geöffnet werden: Keine solche Datei oder Verzeichnis

Ich habe diese Datei lib64OpenglRender.so durch locate gefunden. Es befindet sich im tools/lib- Unterverzeichnis des Android-sdk-linux-Verzeichnisses.

Also habe ich /etc/ld.so.conf.d/Android_stuff.conf erstellt (Sie können natürlich die folgende Zeile in eine andere * .conf-Datei in diesem Verzeichnis einfügen) und eine Zeile einfügen:

pfad_zu_Android-sdk-linux-verzeichnis/tools/lib

Rufen Sie dann das Konfigurationstool auf: ldconfig (nur ohne Parameter) und (zumindest in meinem Fall) die Fehlermeldung ging weg.

15
Gerd

export LD_LIBRARY_PATH = "/ home/<Benutzer-PC>/Android/Sdk/Tools/lib64: $ LD_LIBRARY_PATH"

cd/home/nazmul/Android/Sdk/Werkzeuge

./emulator64-x86 -avd <avd-name> -gpu ein

Dieser Befehl funktioniert auf meinem Laptop.

9
Nazmul

Stellen Sie sicher, dass Sie die richtigen Treiber für Ihre Grafikkarte installieren. Ich hatte genau den gleichen Fehler. 

3
mr.low


Ich denke, dass Gerds Lösung die hilfreichste war.

Falls jemand darüber stolpert, eine detailliertere und umfassendere Lösung ...

Das Vanilla studio.sh-Starter-Shell-Skript legt eine Umgebungsvariable fest:

LD_LIBRARY_PATH="$IDE_BIN_HOME:$LD_LIBRARY_PATH"

dass es dann exportiert. Das IDE_BIN_HOME wird über den Speicherort der studio.sh-Datei festgelegt (irgendwo in der Mitte - normalerweise [Android-studio]/bin). Wenn ein Emulator über Studio-> Manager-> Tools-> AVDs verwalten gestartet wird Diesem Env-Var wird das Android-SDK/tools/bin ..__ vorangestellt. Wenn Sie also das Programm eigenständig starten, haben Sie dieses Env-Var nicht festgelegt. Die Lösung von Gerd fügt die lib dem System lib hinzu. path . Ein anderer Ansatz wäre, einen Wrapper zu erstellen, der sich darum kümmert, dass er nur festgelegt wird, wenn dies erforderlich ist, und (möglicherweise) andere Dinge festgelegt werden.

#!/bin/bash
export Java_HOME="/usr/lib/jvm/Java-BLAH"
export STUDIO_JDK="$Java_HOME"     #This is also used in studio.sh
export IDE_BIN_HOME="/home/you/Android-studio/bin"
export Anroid_SDK="/home/you/Android-sdk"
export LD_LIBRARY_PATH="$Anroid_SDK/tools/lib:$IDE_BIN_HOME:$LD_LIBRARY_PATH"

cd "$Anroid_SDK/tools"

./emulator64-x86 -avd AVD-NAME-1 -gpu on &
./emulator64-arm -avd AVD-NAME-2

Dies ist wahrscheinlich etwas übertrieben, aber es ist abgeschlossen;) Abhängig von Distro/Setup kann Java_HOME voreingestellt sein, so dass Sie diese Zeile löschen können. Wenn Sie den Emulator ständig verwenden, können Sie auch etwas hinzufügen

export LD_LIBRARY_PATH="[YOUR Studio PATH]/tools/lib:$LD_LIBRARY_PATH"

in Ihre .bashrc- oder .profile-Datei.

Um die eigentliche Frage zu beantworten: Es bedeutet, dass der Emulator (Hardware-Accel?) OpenGLES nicht ausführen konnte und dass er Software-Routinen zum Implementieren/Emulieren von OpenGLES verwendet: D Vergewissern Sie sich, dass Sie die richtigen (3D-Accel.?) Grafikkartentreiber installiert haben, und wählen Sie dann einen der obigen (Wrapper-Shell- oder (bash-) session-init-Einstellungen) aus.

Beachten Sie, dass neuere Versionen von Android-Studio das SDK herausgearbeitet haben

2
Kevin

Sie müssen mit Ihrer Android-Gerätespezifikation herumspielen, z. B. RAM, andere Spezifikationen für Heap. 

Es ist schwer zu sagen, was auf was eingestellt werden muss. In meinem Fall habe ich RAM auf 512 und Heap 128 gesetzt, damit es funktioniert. 

0
Daniel

Noch ein Tipp ... Prüfen Sie, ob Sie nicht auf einer virtuellen Maschine sind ... Ich meine, Sie sollten auf einer echten Maschine sein.

0
Prachi

Ich hatte auch das gleiche Problem, auch wenn ich 512 MB von RAM habe. Ich löste den älteren Emulator durch "Löschen" und erstellte den neuen Emulator neu. Der Grund für dieses Problem war mir noch nicht bekannt. Dieses Problem wurde von Google Developers noch nicht geschlossen. Ich hoffe, dass meine Lösung anderen hilft.

0
Gowtham Kumar

Das bedeutet, dass der Linker keine OpenglES-Bibliotheken auf Ihrem System finden konnte. Sie könnten versuchen, diese zu installieren.

Auf Fedora scheint dies das Problem zu lösen:

> yum install mesa-libGLw.i686

Einige verwandte Informationen hier: http://www.redips.net/Android/emulator-Fedora-linux/

Bearbeiten: Für Windows-bezogene Dinge scheint diese Antwort zu tun, was Sie wollen.

0
r.v