So beheben Sie das Problem: "HAX funktioniert nicht und der Emulator wird im Emulationsmodus ausgeführt."

141

Die Frage ist

Ich erhalte die Meldung "HAX funktioniert nicht und der Emulator wird im Emulationsmodus ausgeführt". Bezieht sich dies auf die Installation von Intel x86 Emulator Accelerator (HAXM) und die Ausführung von avd mit auf CPU Intel CPU (x86) eingestellter CPU? Und obwohl es sich anfühlt, als würde AVD nach der Installation von HAXM schneller ausgeführt, weist diese Meldung darauf hin, dass die AVD-Leistung beeinträchtigt ist. Sollte es behoben werden und wenn ja, wie?

Ich laufe auf Mac OS X 10.9.1.

Auflisten, was auf meinem System über Android SDK Manager installiert ist:

  • Werkzeuge
    • Android SDK Tools Rev 22.3
    • Android SDK Platform-tools Version 19.0.1
    • Android SDK Build-Tools Rev 19.0.1
    • Android SDK Build-Tools Rev 19

==

  • Android 4.4.2 (API 19)
    • SDK-Plattform
    • ARM EABI v7a System Image
    • Intel x86 Ato System Image
    • Google APIs
    • Quellen für Android SDK

==

  • Extras
    • Intel x86 Emulator Accelerator (HAXM) UND ICH führen AUCH auch das dmg-Installationsprogramm aus und installieren Hotfix, nachdem ich davon erfahren habe.

AVD eingerichtet

  • Plattform 4.4.2
  • API Level 19
  • CPU Intel Atom (x86)

Sobald ich avd laufen lasse:

(ruby-2.0.0-p353) .android   $ tools/emulator -avd 1AVD -wipe-data -no-boot-anim -cpu-delay 0

Ich bekomme folgende und Emulator wird schließlich geladen

emulator: The memory needed by this VM exceeds the driver limit.

HAX is not working and emulator runs in emulation mode
GnrlBzik
quelle
Ich habe diesen Fehler erhalten, aber mein Emulator wurde bereits ausgeführt. Mein eigentliches Problem war also, dass das Visual Studio-Ziel das iPhone anstelle einer beliebigen CPU war, wodurch meine Bereitstellung auf einem Simulator behoben wurde.
Jaider

Antworten:

200

Ja, es sollte behoben sein, HAXM funktioniert nicht. Wie viel RAM ist für die Verwendung in Ihrer AVD-Konfiguration festgelegt?

768M ist eine gute Nummer dafür, aber am wichtigsten ist, dass diese Nummer niedriger oder gleich der Speichernutzung sein muss, die Sie während der Installation von HAXM festgelegt haben. Sie können die Installation erneut starten, um sie zu ändern.

ph0b
quelle
9
danke @ ph0b, das war's, HAXM wurde mit 1024 Speicherzuweisung installiert und meine avd-Instanz hatte die Speicherzuordnung auf 1907 eingestellt. danke, dass Sie darauf hingewiesen haben.
GnrlBzik
44
Das HAXM-Installationsprogramm schlug eine Standardeinstellung von 1 GB vor, aber die Nexus 5 AVD ist auf 1536 eingestellt. Setzen Sie sie wieder auf 1 GB und wir sind eingeschaltet!
Aalaap
14
Vielen Dank. Für diejenigen, die sich gefragt haben, befindet sich der Speicherort der Installationsdatei von HAXM im sdk/extras/intelOrdner Ihres ADT-Bundles. Wenn Sie den Cursor auf den HAXM-Eintrag in Ihrem AVD Manager setzen, wird die genaue Position angezeigt.
Koh
2
@zhelon Anscheinend besteht die einzige Möglichkeit, HAXM zu konfigurieren, darin, das Installationsprogramm erneut auszuführen.
ThomasW
23
Wenn Sie Windows und Android Studio verwenden, gehen Sie wie folgt vor. In Android Studio: Extras> Android> AVD-Manager> Ihr Gerät> Erweiterte Einstellungen anzeigen> RAM auf die bevorzugte Größe einstellen. In der Systemsteuerung> Programme und Funktionen> Intel Hardware Accelerated Execution Manager> Ändern> Manuell einstellen> Auf bevorzugte Größe einstellen.
Neurotransmitter
66

Wenn Sie auf einem Mac arbeiten, können Sie Homebrew über ein Fass installieren haxm, das eine integrierte Erweiterung ist (Stand 2015), mit der Nicht-Open-Source- und Desktop-Apps (z. B. Chrome, Firefox, Eclipse usw.) installiert werden können:

brew cask install intel-haxm 

Android Studio

Wenn Sie Android Studio verwenden, können Sie das gleiche Ergebnis über das Menü Tools➞ erzielen. Aktivieren Sie SDK Managerdann auf der Registerkarte SDK-Tools das Kontrollkästchen für Intel x86 Emulator Accelerator (HAXM-Installationsprogramm) und klicken Sie auf Ok.

ccpizza
quelle
49

Ich habe es gelöst, indem ich das AVD-Speicherlimit und den HAXM-Speicher auf die gleiche Größe eingestellt habe, nämlich 1 GB = 1024 MB. Die AVD kann kein höheres Speicherlimit als die HAXM haben.

1. Stellen Sie den HAXM-Speicher auf 1024 M ein

Die einzige Möglichkeit, den HAXM-Speicher zu ändern, besteht darin, ihn erneut zu installieren. Ich habe es mit dem Terminal gemacht. Suchen Sie Hardware_Accelerated_Execution_Manager in Ihrem Computer. Wechseln Sie dann in diesen Ordner, um das Installationsskript auszuführen.

cd ~/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager

-OR-

cd ~/Library/Developer/Xamarin/android-sdk-macosx/extras/intel/Hardware_Accelerated_Execution_Manager

Möglicherweise müssen Berechtigungen geändert werden:

sudo chmod 755 "HAXM installation"

Dann:

./HAXM\ installation -m 1024

-OR-

sudo ./"HAXM installation" -m 1024

2. Stellen Sie das virtuelle Gerät auf die gleiche Größe mit HAXM-Speicherlimit ein

Geben Sie hier die Bildbeschreibung ein

Das funktioniert bei mir. Viel Glück!

Geckob
quelle
2
Das hat auch bei mir funktioniert. Wenn Sie nach dem AVD-Konfigurationsbildschirm suchen, finden Sie ihn unter Extras> Android> AVD-Manager
stephenspann
2
Wenn Sie möchten, dass mehr als eine AVD gleichzeitig ausgeführt wird, muss der maximale HAXM-RAM die Summe aller ausgeführten AVDs sein, dh zwei AVDs mit 1024 MB = 2048 MB, also:$ sudo ./HAXM\ installation -m 2048
Jason Hartley,
20

Für Windows.

In Android Studio:

Extras > Android > AVD Manager > Ihr Gerät > Stiftsymbol > Erweiterte Einstellungen anzeigen > Speicher und Speicher > RAM > RAM auf die gewünschte Größe einstellen.

In Control Panel:

Programme und Funktionen > Intel Hardware Accelerated Execution Manager > Ändern > Manuell einstellen > RAM auf die bevorzugte Größe einstellen.

Es ist besser, wenn die an beiden Stellen eingestellten RAM-Größen gleich sind.

Neurotransmitter
quelle
2
+1 zur Erläuterung der genauen Stelle zum Einstellen dieser Werte. Zu viele Antworten im Internet setzen einen Wissensstand voraus, den der Leser wie ich nicht immer hat :-)
MikeKulls
4

Überprüfen Sie die neueste Version von Has auf der Intel-Website und installieren Sie sie. Lassen Sie den RAM in der empfohlenen Größe "voreingestellt 2048" und versuchen Sie dann, die App auszuführen. Die Dinge sollten gut funktionieren.

Mohamed
quelle
2

Ja, es sollte behoben sein, HAXM funktioniert nicht.

HAXM funktioniert manchmal; Die Erfahrungen mit HAXM sind derzeit plattformübergreifend sporadisch.

Zum Beispiel habe ich Ende 2009 iMac mit 10.8.5 und i7 Prozessor bei 2,8 GHz, Android SDK 22.6 mit allen Goodies, die heute Morgen aktualisiert wurden (03.05.14). API17 erstellt Emulatoren mit HAXM-Beschleunigung auf diesem iMac-Computer, API19 erstickt.

Ich habe auch Anfang 2013 MBP 15 "Retina mit 10.8.5 und i7 Prozessor @ 2.7Ghz, Android SDK 22.6 mit allen Goodies, die heute Morgen (03.05.14) aktualisiert wurden. API17 wird Emulatoren mit HAXM-Beschleunigung erstellen, API19 funktioniert auch hervorragend .

Das Gleiche gilt für meine (persönliche) MBP Retina 13 "Ende 2013 mit Dual-Core i5 und Mavericks.

Bei älteren CPUs (sogar i7) fehlt etwas für die Virtualisierung auf Chipebene, das die neuen API19 x86-Images benötigen, damit HAXM funktioniert. Wenn API19 nicht funktioniert, probieren Sie API17 oder sogar 16 aus.

HAL-9000
quelle
2

Auf Ihrem Mac Öffnen Sie den Finder und geben Sie Ctr + Alt + G diesen ein/Users/${yourMacNameHere}/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager

Sie werden das Installationsprogramm für den Emulatorbeschleuniger finden. Führen Sie es aus und richten Sie den Speicher ein, den Sie benötigen. Ändern Sie es und versuchen Sie es erneut, um Ihre Android-Anwendung auszuführen

Zouhair Kasmi
quelle
Die obige Tastenanschlagsequenz hat bei mir nicht funktioniert, sondern nur nach der IntelHAXM_<version name>.dmgDatei im Verzeichnis 'sdk / extras / intel' gesucht und das Installationsprogramm von dort (Mac OSX) ausgeführt
kip2
2

Wenn Sie einen Intel-Prozessor verwenden, stellen Sie sicher, dass das HAXM-Installationsprogramm (Intel® Hardware Accelerated Execution Manager) über den SDK-Manager installiert wird, indem Sie diese Option im SDK-Manager aktivieren. Führen Sie dann das HAXM-Installationsprogramm ext über den folgenden Pfad aus

your_sdk_folder\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm.exe

Überprüfen Sie auch die zugewiesene RAM-Größe während der HAX-Installation, damit sie zur RAM-Größe Ihres Emulators passt.

Dieses Video zeigt alle erforderlichen Schritte, die Ihnen bei der Lösung des Problems helfen können.

Dieses Video hilft Ihnen auch, wenn Sie nach der Installation von HAXM auf Probleme stoßen.

Yogesh Patel
quelle
1

Erhöhen Sie entweder die während der HAX-Installation zugewiesene RAM-Größe, um genau zu passen, oder etwas mehr Speicherplatz als die RAM-Größe des Emulators, den Sie im Modus "Intel x86 Emulator Accelerator (HAXM)" starten möchten.

Sobald Sie damit erfolgreich sind, können Sie dies jetzt in der Konsole / im Protokoll anzeigen

Geben Sie hier die Bildbeschreibung ein

Bala Prasanna
quelle
1

Die Lösung von geckob funktioniert perfekt. Achtung: Das von Ihnen bereitgestellte HAXM wird auf allen laufenden Geräten verwendet. Wenn Sie also gleichzeitig auf einem Telefon und Tablet testen und für jedes eine Anforderung von 1 G besteht. Stellen Sie dann sicher, dass Ihr zugewiesenes HAXM mindestens 2G beträgt.

Dessertkoch
quelle
1

Laden Sie HAXM vom SDK Manager herunter

Öffnen Sie Ihren SDK-Manager in Android Studio und klicken Sie auf das im Screenshot gezeigte Symbol.

Geben Sie hier die Bildbeschreibung ein

Klicken Sie im Dialogfeld "Standardeinstellungen" auf "Standalone SDK Manager starten".

Geben Sie hier die Bildbeschreibung ein

Überprüfen Sie den Knoten "Extras> Intel x86 Emulator Accelerator (HAXM-Installationsprogramm)" und fahren Sie mit dem HAXM-Download fort.

Geben Sie hier die Bildbeschreibung ein

HAXM installieren oder ändern

Sie können jetzt mit der Installation (oder Änderung des vorhandenen installtino) von HAXM zugreifen, indem Sie auf den Download-Speicherort zugreifen. Geben Sie diesen Pfad in "Ausführen" ein

% localappdata% \ Android \ sdk \ extras \ intel \ Hardware_Accelerated_Execution_Manager

und doppelklicken Sie auf die Datei "intelhaxm-android.exe"

Sie können die Größe des HAXM zugewiesenen Speichers erhöhen, während Sie die vorhandene HAXM-Installation ändern. Ich habe einen Computer mit 32 GB RAM und möchte mehrere AVDs gleichzeitig starten (für automatisierte Tests usw.), daher habe ich HAXM 8 GB zugewiesen.

Vorbehalt

Wenn Sie eine AVD mit 1 GB ausführen und HAXM 2 GB zuweisen, können Sie keine andere AVD mit einem RAM von mehr als 1 GB ausführen. Stellen Sie sicher, dass der Android-Gerätemonitor nicht ausgeführt wird, wenn Sie HAXM ändern oder installieren (nur um Überraschungen zu vermeiden).

Geben Sie hier die Bildbeschreibung ein

Diese Schritte werden auf der Windows-Plattform getestet, können jedoch im Allgemeinen mit geringfügigen Änderungen auch auf andere Plattformen angewendet werden.

AB
quelle
1

Mein Problem war, dass ich keinen Emulator mehr ausführen konnte, der funktioniert hatte, weil ich die Emulatoranwendung beendet hatte, der Prozess jedoch nicht vollständig beendet war. Daher habe ich versucht, einen anderen Emulator zu starten, während der vorherige noch ausgeführt wurde. Auf einem Mac musste ich den Aktivitätsmonitor verwenden, um den anderen Prozess zu sehen und abzubrechen. Schritte:

  1. Öffnen Sie den Aktivitätsmonitor (in Dienstprogrammen oder mit Befehl + Leertaste).
  2. Suchen Sie den Prozessnamen, in meinem Fall qemu-system ...
  3. Wählen Sie den Prozess aus.
  4. Erzwingen Sie den Vorgang zum Beenden mit der Schaltfläche 'x' oben links.
  5. Ich musste nicht 'Force Quit' verwenden, sondern nur das einfache 'Quit', aber Sie können auch beides verwenden.
rjferguson
quelle
1

In meinem Fall wurde dieser Fehler behoben, als ich den HAXM-Speicher auf den AVD-Speicher setzte. HAXM-Speicher 1024 MB = AVD-Speicher 1024 MB

Hax is enabled
Hax ram_size 0x40000000
HAX is working and emulator runs in fast virt mode.

Bis zu diesem Punkt sollte der Fehler behoben sein.

Jetzt liste ich meine spezifische Umgebung auf, falls dies für jemanden, der OS X verwendet, hilfreich sein könnte.

OS X El Capitan 10.11.4

MacBook (13 Zoll), 2 GHz Intel Core 2 Duo, 4 GB RAM.

Android Studio 2.1

Marshmallow (23) x86 hat den blinkenden Android-Symbolbildschirm stundenlang nicht bestanden.

Lollipop (22) x86 hat den blinkenden Android-Symbolbildschirm passiert und dann angezeigt

  • Starten von Android (Optimieren von x aus y Apps)
  • Starten von Android (Starten von Apps)
  • Starten von Android (Aktualisieren der Kontaktdatenbank)
  • Starten von Android (Finishing Boot) und blieb hier stundenlang stecken .

KitKat (19) x86 hat erfolgreich funktioniert und ich konnte dort die Hallo-Welt installieren.

Zeeawan
quelle
Ist das eine Antwort? @zeeawan
GnrlBzik
Ja, die Kombination aus HAXM-Speicher und 1024 MB = AVD-Speicher und 1024 MB bewirkt, dass der Hax funktioniert. Außerdem geht diese Antwort darauf ein, wie der Emulator unter OS X für mich zu arbeiten begann.
Zeeawan
Brauchen Sie mehr Erzählung, denke ich.
GnrlBzik
Wollen Sie damit sagen, dass Sie den Fehler behoben haben, aber immer noch Probleme mit dem Emulator auftreten, dessen Start einige Zeit in Anspruch nimmt?
Sam
Mit KitKat (19) x86 war das in Ordnung.
Zeeawan
0

Öffnen Sie Ihre AVD-Gerätekonfiguration erneut. durch Bearbeiten des Geräts im AVD-Manager. Fahren Sie mit der Auswahl der AVD Android-Version fort. Im rechten Bereich wird eine Empfehlung angezeigt, die dieser Empfehlung folgt, und alle werden behoben.

hasan
quelle
0

Der HAX zugewiesene Standardspeicher beträgt 1024 MB. Und der Emulator hat anscheinend 1536MB für Nexus 5x api 25.

Wenn Sie Android Studio verwenden,

  • Gehen Sie einfach zu Tools -> AVD Manager.
  • Wählen Sie dann den Emulator aus und klicken Sie zum Bearbeiten auf die Bleistiftschaltfläche rechts.
  • Gehen Sie im neuen Fenster zu den erweiterten Einstellungen und ändern Sie den RAM-Wert in 1024

Klappt wunderbar. :) :)

Screenshot von Android Studio

abe312
quelle