web-dev-qa-db-fra.com

Android Message d'erreur de l'émulateur: "PANIC: programme moteur de l'émulateur manquant pour le CPUS 'x86'".

J'essaie de lancer un émulateur Android à l'aide du gestionnaire AVD. c'est mon avd: http://image-upload.de/image/fnx79V/52b0d050ee.png

et c'est ce qui se passe en commençant par:

http://image-upload.de/image/vGpQfa/e912d83939.png

J'ai un Macbook Pro Retina. Installé le pilote Haxm directement à partir de la page intel.

Aucun émulateur ne fonctionne. Tous reçoivent le même message "d'erreur".

Exécution de la commande (cette erreur concernait l’utilisation de Homebrew pour installer Android-sdk et Android-platform-tools | quiconque rencontre le même problème devrait l’aider ou le regarder à l’endroit où se trouve le conflit)

export Android_EMULATOR_DEBUG=1 test20

emulator:Found AVD name 'test20'
emulator:Found AVD target architecture: x86
emulator:Looking for emulator-x86 to emulate 'x86' CPU
emulator:Probing program: ./emulator-x86
emulator:Probing path for: emulator-x86
emulator:Found target-specific emulator binary: /usr/local/bin/emulator-x86
emulator:Probing for: /usr/local/bin/libOpenglRender.dylib
emulator:Probing for: /usr/local/bin/lib/libOpenglRender.dylib
emulator:Probing for: /usr/local/lib/libOpenglRender.dylib
emulator:Probing for: /usr/local/bin/lib64OpenglRender.dylib
emulator:Probing for: /usr/local/bin/lib/lib64OpenglRender.dylib
emulator:Probing for: /usr/local/lib/lib64OpenglRender.dylib
emulator:Could not find OpenGLES emulation Host libraries!
emulator: ERROR: This AVD's configuration is missing a kernel file!!

emulator -avd test21
emulator:Found AVD name 'test21'
emulator:Found AVD target architecture: x86_64
emulator:Looking for emulator backend for x86_64 CPU
emulator:Probing program: ./emulator-x86_64
emulator:Probing path for: emulator-x86_64
emulator:Looking for emulator-x86 to emulate 'x86_64' CPU
emulator:Probing program: ./emulator-x86
emulator:Probing path for: emulator-x86
PANIC: Missing emulator engine program for 'x86_64' CPUS.

Après avoir résolu le problème avec Homebrew:

J'ai essayé un peu et trouvé ceci:

emulator64-x86 -avd test20
Creating filesystem with parameters:
    Size: 69206016
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 4224
    Inode size: 256
    Journal blocks: 1024
    Label: 
    Blocks: 16896
    Block groups: 1
    Reserved block group size: 7
Created filesystem with 11/4224 inodes and 1302/16896 blocks
emulator: ERROR: Could not load OpenGLES emulation library: dlopen(lib64OpenglRender.dylib, 1): image not found
emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
HAX is working and emulator runs in fast virt mode
qemu: could not load PC BIOS 'bios.bin'

Pour tous ceux qui ont le même problème, peut-être que ces étapes vous aideront:

Exécutez votre émulateur en mode débogage:

export Android_EMULATOR_DEBUG=1 emulatorName

S'il existe un chemin qui semble étrange, recherchez d'autres installations telles que Homebrew et supprimez le conflit (désinstallez-en un).

Lorsque la bibliothèque est manquante, vous devez exporter la variable:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$Android_HOME/tools/lib

Et lorsque l'erreur "qemu:" impossible de charger le BIOS de l'ordinateur "bios.bin" ", un correctif consiste à exécuter l'émulateur avec le chemin complet:

/Applications/Android\ Studio.app/sdk/tools/emulator64-x86 -avd test20
In your case it is maybe a other path.
159
Visores

Si vous utilisez macOS, ajoutez les deux répertoires Android SDK emulator et tools au chemin suivant:

Étape 1: Dans mon cas, l'ordre était important, d'abord emulator, puis tools.

export Android_SDK=$HOME/Library/Android/sdk
export PATH=$Android_SDK/emulator:$Android_SDK/tools:$PATH

Étape 2: Rechargez vous .bash_profile Ou .bashrc en fonction du système d'exploitation

Étape 3: Obtenir la liste des émulateurs disponibles: $emulator -list-avds

Étape 4: Lancez l’émulateur depuis la ligne de commande et remplacez avd par le nom de votre émulateur $emulator @avd

N'oubliez pas d'ajouter le symbole @.

Cela a été testé avec macOS High Sierra 10.13.4 et Android Studio 3.1.2.

210
enreas

La solution suivante pour démarrer emulator-x86 a fonctionné pour moi:

cd $SDK/tools; 
ln -s emulator64-x86 emulator-x86

Ou sous Windows, ouvrez l'invite de commande (Admin)

cd %Android_SDK_ROOT%\tools
mklink emulator64-x86.exe emulator-x86.exe

Et maintenant, l'émulateur démarrera à partir du gestionnaire de SDK.

Note: Les émulateurs sont situés dans le dossier emulators dans les versions plus récentes.

51
Tongfa

J'ai eu ce problème après la mise à niveau de Android Studio vers la version 3.2 et même la mise à niveau de certains SDK-Packages.

La cause était que le chemin d'accès à l'émulateur avait changé. N'utilisez donc pas ...../Android/Sdk/tools/emulator mais plutôt ....../Android/Sdk/emulator/emulator.

45
suther

Naviguez jusqu'au dossier de l'émulateur situé dans Android SDK folder/emulator

cd ${Android_HOME}/emulator

Puis tapez cette commande pour ouvrir l’émulateur sans le studio Android:

$ ./emulator -list-avds
$ ./emulator -avd Nexus_5X_API_28_x86

Nexus_5X_API_28_x86 est mon AVD, vous devez donner le nom de votre AVD

38
abinthomas12914

Sur Mac après avoir installé Android Studio IDE Android-studio-ide-173.4907809-mac.dmg et en utilisant studio SDK Manager pour installer SDK Tools

enter image description here

Ajoutez à votre CHEMIN en utilisant ~/.profile ou ~/.bash_profile et assurez-vous que vous avez $Android_HOME/emulator dans votre $PATH avant $Android_HOME/tools comme ceci:

export Android_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$Android_HOME/emulator
export PATH=$PATH:$Android_HOME/tools
export PATH=$PATH:$Android_HOME/tools/bin
export PATH=$PATH:$Android_HOME/platform-tools

alias androidemulator='emulator -avd Nexus_5X_API_28_x86'
15
ilovett

Pour Windows 10, 5.29.18:

En utilisant la commande promt je viens de recevoir le répertoire de l'émulateur:

cd C:\Android\sdk\emulator

puis tapé la commande:

emulator -avd Nexus_S_API_27

Nexus_S_API_27 est le nom de mon émulateur personnalisé.

Othewize il va abuser:

PANIC: Missing emulator engine program for 'x86' CPU.
15
CodeToLife

Il existe deux fichiers binaires nommés emulator. qui se trouve sous $SDK/tools/emulator un autre sous $SDK/emulator/

  • assurez-vous que vous avez le bon émulateur configuré (vous devez ajouter $SDK/emulator à votre env. PATH

J'ai écrit un script pour m'aider à appeler la liste avd

    #!/bin/bash -e


    echo "--- $# $(PWD)"
    HOME_CURRENT=$(PWD)
    HOME_EMULATOR=/Users/pcao/Library/Android/sdk/emulator

    if [ "$#" -eq 0 ]
    then
        echo "ERROR pls try avd 23 or avd 28 " 
    fi

    if [ "$1" = "23" ]
    then
        echo "enter 23"
        cd $HOME_EMULATOR
        ./emulator -avd Nexus_5_API_23_Android6_ &
        cd $HOME_CURRENT
    fi

    if [ "$1" = "28" ]
    then
        echo "enter 28"
        cd $HOME_EMULATOR
        ./emulator -avd Nexus_5_API_28_GooglePlay_ &
        cd $HOME_CURRENT
    fi


5
caopeng

Vous pouvez également essayer ce qui est suggéré ici: https://www.stkent.com/2017/08/10/update-your-path-for-the-new-Android-emulator-location.html =

En bref, lancez l'émulateur à partir du dossier sdk/emulator

3
Bakhshi

Dans mon cas, j’avais besoin d’installer Android Emulator à partir de Sdk Manager et de le réparer.

enter image description here

2
Morteza Rastgoo

Vous ne pouvez pas démarrer le répertoire emulator-x86, car LD_LIBRARY_PATH doit être spécialement configuré pour rechercher les bibliothèques d'émulation PC Bios et GPU (c'est pourquoi "emulator" existe, il modifie le chemin, puis appelle emulator-x86).

Avez-vous mis à jour la première sortie? Il semble que 'emulator' trouve toujours '/ usr/local/bin/emulator-x86'

2
Digit

Avait le même problème sur Windows7 64bit. La raison pour laquelle il ne l'a pas été manquait le fichier emulator-x86.exe sous sdk/tools. Résolu en supprimant Android SDK Tools à l'aide de Android SDK Manager et en l'installant à nouveau. Le fichier existe maintenant et l'émulateur fonctionne comme prévu.

2
Wytas

Cela a fonctionné pour moi sur macOS:

echo 'export PATH=$PATH:'$HOME'/Library/Android/sdk/emulator:'$HOME'/Library/Android/sdk/tools:'$HOME'/Library/Android/sdk/platform-tools' >> ~/.bash_profile
source ~/.bash_profile
1
C.M.

SUR WINDOWS - la mise à jour du chemin système a fonctionné pour moi. Créez une variable d'environnement pour l'emplacement de votre sdk appelée Android_SDK puis ajoutez-les à votre chemin, dans cet ordre:

%Android_SDK%\emulator
%Android_SDK%\platform-tools
%Android_SDK%\tools
%Android_SDK%\tools\bin
1
Christopher Jordan

Supprimer les deux Android SDK Tools et Android SDK PLatform-tools; puis téléchargez à nouveau les deux paquets. Maintenant, créez un nouvel émulateur et démarrez-le. ça va marcher. Vous pourrez peut-être utiliser vos anciens émulateurs.

1
Dipesh Rathod

Essayez la solution suivante pour démarrer emulator-x86:

export LD_LIBRARY_PATH=$SDK/tools/lib:$LD_LIBRARY_PATH
$SDK/tools/emulator-x86 <your-other-options>

Où $ SDK est le chemin d'accès à votre installation de SDK. C'est en un mot ce que "l'émulateur" essaie de faire. Vous voudrez peut-être démarrer emulator64-x86 au lieu de emulator-x86 si le premier existe cependant.

1
Digit

Avast Antivirus détecte emulator-arm.exe en tant que thread et le bloque pour certaines raisons. Lorsque vous ajoutez des exclusions à la page Virus Chest avec un clic droit -> "restaurer et ajouter des exclusions", les problèmes ne seront pas résolus lors de vos prochaines éditions. Pour résoudre ce problème en permanence dans Avast 2015:

Paramètres ->

Protection active ->

Bouclier du système de fichiers ->

Personnaliser ->

Les exclusions ajoutent ensuite le fil en tant qu'exclusion. Et puis appuyez sur ok.

1
canmurat

J'ai rencontré le même problème et je n'ai jamais travaillé pour moi sauf avant d'aller dans le dossier de l'émulateur. J'ai essayé d'exporter le dossier de l'émulateur, mais sans succès.

cd $Android_home/emulator and run emulator

, à la fin, j'écris Elias pour la commande dans le fichier .bashrc

alias emulator="$Android_HOME/emulator/emulator"
0
Mohannd

Tout d’abord, vérifiez le chemin que vous obtenez avec which emulator et si vous obtenez /usr/local/share/Android-sdk/tools/emulator, supprimez ou renommez cet émulateur (c’est un ancien) et utilisez plutôt /usr/local/share/Android-sdk/emulator/emulator qui est le nouvel chemin .

Si vous utilisez Homebrew et que vous avez installé brew cask install Android-sdk Android-studio, vous devez:

  1. Vérifiez dans votre .bashrc ou .zshrc que les chemins corrects sont définis:
# Remove $HOME/Library/Android paths
# The new way is to use Android_SDK_ROOT
export Android_SDK_ROOT="/usr/local/share/Android-sdk"
# For good measure, add old paths to be backwards compatible with any scripts or 
whatnot. And to hopefully decrease confusion:
export Android_HOME=$Android_SDK_ROOT
export Android_NDK_HOME=$Android_SDK_ROOT/ndk-bundle
  1. Puis redémarrez votre terminal Shell et vérifiez que vos chemins sont conformes à vos attentes:

    set | grep Android

  2. Enfin, avec les chemins corrects définis, vous devez généralement installer le ndk et certains outils:

    sdkmanager "ndk-bundle" "cmake;3.10.2.4988404" "lldb;3.1"

    et vérifiez la liste pour d'autres morceaux comme ceci sdkmanager --list

J'ai également fermé Android Studio, supprimé l'ancien dossier Android/Sdk sous mon dossier $ HOME, puis redémarré Studio. Lorsqu'il a demandé où était mon Sdk, j'ai collé le chemin d'accès à Sdk: /usr/local/share/Android-sdk

0
Simon B.