webentwicklung-frage-antwort-db.com.de

Mac und "PANIC: Fehlendes Emulator-Engine-Programm für 'Arm' CPU."

Ich versuche, eine AVD, die ich für API 16 erstellt habe, auf einem Galaxy Nexus auszuführen:

emulator @Galaxy_Nexus_Jelly_Bean_API_16

was gibt den fehler

PANIC: Fehlendes Emulator-Engine-Programm für 'Arm'-CPU.

Wenn Sie versuchen, es durch Drücken der Wiedergabetaste aus dem AVD Manager in Android Studio zu starten, wird etwas im Werkzeugdock abgelegt, aber es verschwindet schnell und es wird nichts angezeigt, und es werden keine Fehlermeldungen angezeigt.

Ich habe andere Beiträge mit ähnlichen Problemen durchgesehen. Die meisten geben Avast unter Windows als Ursache des Problems an. Ich laufe auf einem Mac. Ich habe Avast nicht installiert.

Der AVD hat die folgende Konfiguration:

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

Android Studio-Umgebung:

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

Ich habe alles für diese Version des SDKs installiert, das im SDK-Manager verfügbar ist:

 enter image description here

Ich habe die neueste Version des Emulators installiert. Ich habe versucht, es zu deinstallieren und erneut zu installieren.

 enter image description here

Die Umgebungsvariable Android_HOME scheint korrekt festgelegt zu sein (sie stimmt mit dem Android SDK location im SDK-Manager überein. Das Programm emulator scheint auch in dieser häuslichen Umgebung zu sein:

 Mulan: ~ Häftling $ echo $ Android_HOME 
/Benutzer/Häftling/Bibliothek/Android/sdk 
 Mulan: ~ Häftling $ which emulator
/Users/prisoner/Library/Android/sdk/tools/ Emulator

Soweit ich das beurteilen kann, befinden sich auch der Emulator und die architekturspezifischen Emulatoren unter Android_HOME:

 enter image description here

Ich weiß nicht, wo Sie sonst nachsehen müssen, entweder nach Fehlermeldungen oder nach dem Emulator, der nicht vorhanden ist, aber vom System nicht gefunden werden kann oder wie das Problem gelöst werden soll.

Update 1: Geben Sie den Pfad explizit an.

Der Versuch, die Pfade explizit anzugeben, funktioniert ebenfalls nicht:

 Mulan: ~ gefangener $/Benutzer/Gefangener/Bibliothek/Android/sdk/tools/emulator @ Galaxy_Nexus_Jelly_Bean_API_16 
 PANIC: Fehlendes Emulator-Engine-Programm für 'Arm'-CPU .
 Mulan: ~ Gefangener $/Users/Häftling/Bibliothek/Android/SDK/Emulator/Emulator @ Galaxy_Nexus_Jelly_Bean_API_16 
 Emulator: ERROR: Bei dieser AVD-Konfiguration fehlt eine Kernel-Datei! Bitte stellen Sie sicher, dass sich die Datei "kernel-qemu" am selben Speicherort wie Ihr System-Image befindet. Emulator: ERROR: Android_SDK_ROOT ist undefined 

Sicher ist Android_SDK_ROOT nicht definiert. Wenn Sie es wie Android_HOME definieren, wird Folgendes ausgeführt:

 Mulan: ~ Häftling $ export Android_SDK_ROOT = "$ Android_HOME" 
 Mulan: ~ Häftling $/Users/Häftling/Bibliothek/Android/sdk/Emulator/Emulator @ Galaxy_Nexus_Jelly_Bean_API_16 
 Emulator: ERROR: Die Konfiguration dieses AVD ist eine Kernel-Datei fehlt! Bitte stellen Sie sicher, dass sich die Datei "kernel-qemu" am selben Ort wie Ihr System-Image befindet. Emulator: ERROR: Android_SDK_ROOT ist definiert (/ Users/prisoner/Library/Android/sdk), kann aber keine Kernel-Datei in/Users/finden. Häftling/Bibliothek/Android/SDK/Systembilder/Unterverzeichnisse 

Unter dem Verzeichnis system-images sehen wir ein Verzeichnis für jede API-Plattform:

 Mulan: ~ prisoner $ ls ~/Bibliothek/Android/sdk/system-images /
 Android-16 Android-19 Android-23 Android-26 
 Android-17 Android-21 Android-24 Android- 27 
 Android-18 Android-22 Android-25 Android-28 

Wir haben gerade unter dem Android-16-Verzeichnis gesucht

./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

Nur auf meinem Mac getestet und verifiziert. Um dieses Problem zu lösen, müssen Sie den Pfad -kernel manuell angeben. d.h. 

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

Einige Referenzen für Sie: 

  1. Emulatorfehler: Bei dieser AVD-Konfiguration fehlt eine Kernel-Datei.

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

--- Bearbeiten ---

Um zu vermeiden, dass jedes Mal das Argument -kernel eingegeben wird, können Sie auch die Datei ~/Library/Android/sdk/system-images/Android-16/default/armeabi-v7a/kernel-qemu nach ~/Library/Android/sdk/add-ons/addon-google_apis-google-16/images/armeabi-v7a kopieren.

2
shizhen

Möglicherweise liegt das Problem mit dem Emulatorwerkzeugpfad. Versuchen Sie, den vollständigen Pfad Ihres Emulatorpfads anzugeben. 

Versuchen Sie die Antwort hier. Windows emulator.exe PANIC: Fehlendes Emulator-Engine-Programm für 'x86'-CPU

0
user10189678