web-dev-qa-db-fra.com

Mac et "PANIC: programme moteur de l'émulateur manquant pour le processeur 'arm'."

Je tente d'exécuter un AVD créé pour l'API 16 sur un Galaxy Nexus:

emulator @Galaxy_Nexus_Jelly_Bean_API_16

ce qui donne l'erreur

PANIC: Programme moteur de l'émulateur manquant pour le processeur 'arm'.

Si vous tentez de le démarrer en appuyant sur le bouton de lecture du gestionnaire AVD d’Android Studio, un élément est renvoyé dans la station d’accueil, mais il disparaît rapidement et rien ne s’affiche et aucun message d’erreur évident ne se produit.

J'ai parcouru d'autres publications avec des problèmes similaires. La plupart citent Avast sous Windows comme étant à l'origine du problème. Je cours sur un Mac. Je n'ai pas installé Avast.

L'AVD a la configuration suivante:

Name: Galaxy_Nexus_Jelly_Bean_API_16
CPU/ABI: Google APIs ARM (armeabi-v7a)
Path: /Users/prisoner/.Android/avd/Galaxy_Nexus_API_16.avd
Target: google_apis [Google APIs] (API level 16)
Skin: galaxy_nexus
SD Card: 100 MB
hw.dPad: no
hw.lcd.height: 1280
runtime.network.speed: full
hw.accelerometer: yes
hw.device.name: Galaxy Nexus
vm.heapSize: 80
skin.dynamic: yes
hw.device.manufacturer: Google
hw.lcd.width: 720
hw.gps: yes
hw.initialOrientation: Portrait
image.androidVersion.api: 16
hw.audioInput: yes
image.sysdir.1: add-ons/addon-google_apis-google-16/images/armeabi-v7a/
hw.cpu.model: cortex-a8
tag.id: google_apis
showDeviceFrame: yes
hw.camera.back: virtualscene
hw.mainKeys: no
AvdId: Galaxy_Nexus_Jelly_Bean_API_16
hw.camera.front: emulated
hw.lcd.density: 320
avd.ini.displayname: Galaxy Nexus Jelly bean API 16
hw.arc: false
hw.gpu.mode: auto
hw.device.hash2: MD5:5c288d27461585ecc73a535555e7cf61
hw.ramSize: 1024
hw.trackBall: no
PlayStore.enabled: false
fastboot.forceColdBoot: no
hw.battery: yes
hw.cpu.ncore: 4
hw.sdCard: no
tag.display: Google APIs
runtime.network.latency: none
hw.keyboard: yes
hw.sensors.proximity: yes
disk.dataPartition.size: 800M
hw.sensors.orientation: yes
avd.ini.encoding: UTF-8
hw.gpu.enabled: yes

Environnement Android Studio:

Android Studio 3.1.4
Build #AI-173.4907809, built on July 23, 2018
JRE: 1.8.0_152-release-1024-b01 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Mac OS X 10.12.6

J'ai tout installé pour cette version du SDK disponible dans le gestionnaire de SDK:

 enter image description here

J'ai la dernière version de l'émulateur installée. J'ai essayé de le désinstaller et de le réinstaller.

 enter image description here

La variable d'environnement Android_HOME semble être correctement définie (elle correspond au Android SDK location dans le gestionnaire de SDK. Le programme emulator semble également être celui situé dans cet environnement d'origine:

 Mulan: ~ prisonnier $ echo $ Android_HOME 
/Utilisateurs/prisonnier/Bibliothèque/Android/sdk 
 Mulan: ~ prisonnier $ quel émulateur
/Users/prisoner/Library/Android/sdk/tools/ émulateur 

Autant que je sache, l'émulateur et les émulateurs spécifiques à l'architecture sont également sous Android_HOME:

 enter image description here

Je ne sais plus où chercher, que ce soit pour les messages d'erreur ou l'émulateur qui existe, mais que le système ne peut pas trouver, ou pour résoudre le problème d'une autre manière.

Update 1: spécifiez le chemin explicitement.

Essayer de spécifier explicitement les chemins ne fonctionne pas non plus:

 Mulan: ~ prisonnier $/Utilisateurs/prisonnier/Bibliothèque/Android/sdk/outils/émulateur @ Galaxy_Nexus_Jelly_Bean_API_16 
 PANIC: Programme moteur de l'émulateur manquant pour 'arm' CPU .
 Mulan: ~ prisonnier $/Utilisateurs/prisonnier/Bibliothèque/Android/sdk/émulateur/émulateur @ Galaxy_Nexus_Jelly_Bean_API_16 
 emulator: ERREUR: Il manque un fichier de noyau dans la configuration de cet AVD! Assurez-vous que le fichier "kernel-qemu" se trouve au même emplacement que votre image système .
 Emulator: ERROR: Android_SDK_ROOT n'est pas défini 

Effectivement, Android_SDK_ROOT n'est pas défini. Définir la même chose que Android_HOME fait ce qui suit:

 Mulan: ~ prisonnier $ export Android Android_SDK_ROOT = "$ Android_HOME" 
 Mulan: ~ prisonnier $/Utilisateurs/prisonnier/Bibliothèque/Android/sdk/émulateur/émulateur @ Galaxy_Nexus_Jelly_Bean_API_16 
 Émulateur: ERREUR: la configuration de cet AVD est manque un fichier de noyau! Assurez-vous que le fichier "kernel-qemu" se trouve au même emplacement que votre image système .
 Emulator: ERROR: Android_SDK_ROOT est défini (/ Users/prisonnier/Library/Android/sdk), mais ne trouve pas le fichier du noyau dans/Users /. prisonnier/Bibliothèque/Android/sdk/images-système/sous-répertoires 

En regardant sous le répertoire system-images, nous voyons un répertoire pour chaque plate-forme API:

 Mulan: ~ prisonnier $ ls ~/Bibliothèque/Android/sdk/images-système /
 Android-16 Android-19 Android-23. Android-26 
 Android-17. Android-21 Android-24. 27 
 Android-18 Android-22 Android-25 Android-28 

En regardant juste sous le répertoire Android-16, nous avons

./default 
./default/armeabi-v7a 
./default/armeabi-v7a/build.prop 
./default/armeabi-v7a/kernel-qemu 
./default /armeabi-v7a/NOTICE.txt
.../default/armeabi-v7a/package.xml
./default/armeabi-v7a/ramdisk.img
./default/armeabi-v7a/source.properties 
./default/armeabi-v7a/system.img 
./default/armeabi-v7a/userdata.img 
./default/mips 
./default/mips/build.prop 
./default/mips/kernel-qemu
./default/mips/NOTICE.txt
./default/mips/package.xml
./default/mips/ramdisk.img
. /default/mips/source.properties
./default/mips/system.img
.../default/mips/userdata.img
.../default/x86
./default/x86/build .prop 
./default/x86/kernel-qemu 
./default/x86/kernel-ranchu 
./default/x86/NOTICE.txt 
./default/x86/package.xml 
./default/x86/ramdisk.img 
./default/x86/source.properties 
./default/x86/system.img 
./default/x86/userdata.img 
./google_apis
.../google_apis/x86
./google_apis/x86/advancedFeatures.ini
./google_apis/x86/build.prop
 ./google_apis/x86/kernel-qemu
./google_apis/x86/kernel-ranchu
./google_apis/x86/NOTICE.txt
./google_apis/x86/package.xml
.../ google_apis/x86/ramdisk.img 
./google_apis/x86/source.properties 
./google_apis/x86/system.img 
./google_apis/x86/userdata.img 
5
Prisoner

Juste essayé et vérifié sur mon Mac, pour résoudre ce problème, vous devez spécifier le chemin -kernel manuellement. c'est à dire. 

$ ~/Library/Android/sdk/emulator/emulator  @Galaxy_Nexus_Jelly_Bean_API_16 -kernel ~/Library/Android/sdk/system-images/Android-16/default/armeabi-v7a/kernel-qemu

Quelques références pour vous: 

  1. Erreur d'émulateur: il manque un fichier de noyau à la configuration de cet AVD

  2. https://developer.Android.com/studio/run/emulator-commandline

--- Modifier ---

Pour éviter de saisir l'argument -kernel à chaque fois, vous pouvez également copier le fichier ~/Library/Android/sdk/system-images/Android-16/default/armeabi-v7a/kernel-qemu dans ~/Library/Android/sdk/add-ons/addon-google_apis-google-16/images/armeabi-v7a.

2
shizhen

Peut-être que c'est le problème du chemin de l'outil de l'émulateur. Essayez de spécifier le chemin complet de votre chemin d'émulateur. 

Essayez la réponse d'ici. Windows emulator.exe PANIQUE: programme moteur de l'émulateur manquant pour le processeur 'x86'

0
user10189678