web-dev-qa-db-fra.com

emulator: AVERTISSEMENT: impossible d'initialiser l'émulation OpenglES à l'aide du moteur de rendu

Que signifient ces messages d'erreur de l'émulateur Android?

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

Lors du démarrage de l'émulateur à partir de la ligne de commande - $ emulator64-arm -avd GalaxyS2 - J'ai reçu un message similaire (et peut-être/heureusement):

emulator: ERROR: Impossible de charger la bibliothèque d'émulation OpenGLES: lib64OpenglRender.so: impossible d'ouvrir le fichier d'objet partagé: aucun fichier ni répertoire de ce type

J'ai trouvé ce fichier lib64OpenglRender.so à locate. C'est dans le sous-répertoire tools/lib- du répertoire Android-sdk-linux-.

J'ai donc créé /etc/ld.so.conf.d/Android_stuff.conf (vous pouvez bien sûr ajouter la ligne suivante à un autre fichier * .conf de ce répertoire) et y insérer une ligne:

path_to_Android-sdk-linux_directory/tools/lib

Appelez ensuite l'outil de configuration: ldconfig (sans aucun paramètre) et (du moins dans mon cas), le message d'erreur est parti.

15
Gerd

export LD_LIBRARY_PATH = "/ home/<utilisateur>/Android/Sdk/tools/lib64: $ LD_LIBRARY_PATH"

cd/home/nazmul/Android/Sdk/outils

./emulator64-x86 -avd <nom-avd> -gpu sur

Cette commande fonctionne sur mon ordinateur portable.

9
Nazmul

Assurez-vous d’installer les pilotes appropriés pour votre carte graphique. J'avais exactement la même erreur. 

3
mr.low


Je pense que la solution de Gerd était la plus utile .

Au cas où quelqu'un tomberait sur cela, une solution plus détaillée et complète ...

Le script Vanilla studio.sh starter-Shell définit une variable env:

LD_LIBRARY_PATH="$IDE_BIN_HOME:$LD_LIBRARY_PATH"

qu'il exporte ensuite. IDE_BIN_HOME est défini à l'aide de l'emplacement du fichier studio.sh (quelque part au milieu, généralement [Android-studio]/bin) . Lorsqu'un émulateur est lancé via Studio-> Manger-> Outils-> Gérer les AVD cette-variable-env est préfixée avec Android-SDK/tools/bin . Cela signifie que lorsque vous démarrez-la en mode autonome, vous n'avez pas défini cette variable -env-var . La solution de Gerd ajoute la bibliothèque lib au système lib-search- path . Une autre approche serait de créer un wrapper qui s’occupe de cela de manière à ce qu’il ne soit défini que lorsque cela est nécessaire et (éventuellement) que d’autres éléments soient également définis.

#!/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

C'est probablement un peu exagéré, mais complet;) En fonction de la configuration/configuration, Java_HOME peut être prédéfini, vous pouvez donc supprimer cette ligne. Si vous utilisez constamment l'émulateur, vous pouvez également ajouter quelque chose comme

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

à votre fichier .bashrc ou .profile.

Mais pour répondre à la question: cela signifie que l'émulateur n'a pas pu exécuter OpenGLES (matériel-accel?) Et qu'il utilise des routines logicielles pour implémenter/émuler OpenGLES: D Pour permettre à l'émulateur de trouver la bibliothèque souhaitée , assurez-vous d’avoir installé les pilotes de carte graphique appropriés (3D-Accel.?), puis choisissez l’un des paramètres ci-dessus (enveloppes Shell ou (bash-) session-init settings).

Notez que les versions les plus récentes d’Android-Studio ont fourni le SDK.

2
Kevin

Vous devez jouer avec les spécifications de votre appareil Android telles que la RAM, d'autres spécifications Heap. 

Il est difficile de vous dire qui doit être réglé sur quoi. Dans mon cas, je règle RAM sur 512 et Heap 128 pour que cela fonctionne. 

0
Daniel

Encore un conseil ... Vérifiez si vous n'êtes pas sur une machine virtuelle ... Je veux dire que vous devriez être sur une vraie machine.

0
Prachi

Moi aussi j'ai eu le même problème même si j'ai 512 MB de RAM. J'ai résolu le problème en "supprimant" l'ancien émulateur et en recréant le nouvel émulateur. Je ne connaissais toujours pas la raison de ce problème. Ce problème n'est pas encore clos par Google Développeurs . En espérant que ma solution aide les autres.

0
Gowtham Kumar

Cela signifie que l'éditeur de liens n'a pas pu trouver les bibliothèques OpenglES sur votre système. Vous pouvez essayer d'installer ceux-ci.

Sur Fedora, cela semble résoudre le problème:

> yum install mesa-libGLw.i686

Quelques informations connexes ici: http://www.redips.net/Android/emulator-Fedora-linux/

Edit: Pour les choses liées à Windows, cette réponse semble faire ce que vous voulez.

0
r.v