Comment réparer: “HAX ne fonctionne pas et l’émulateur fonctionne en mode émulation”

La question est

J’obtiens “HAX ne fonctionne pas et l’émulateur s’exécute en mode émulation”, est-ce que cela est lié à l’installation du processeur Intel x86 Emulator Accelerator (HAXM) et à l’exécution d’AVD avec le processeur défini sur Intel Atom (x86)? Et même si on a l’impression qu’AVD fonctionne plus rapidement après avoir installé HAXM, ce message indique-t-il que les performances d’AVD sont entravées. Faut-il le réparer et si oui, comment?

Je cours sur Mac OS X 10.9.1.

Liste de ce qui est installé sur mon système via Android sdk manager:

  • Outils
    • Outils du SDK Android Rev 22.3
    • Android SDK Platform-tools rev 19.0.1
    • SDK Android Build-tools Rev 19.0.1
    • Android SDK Build-tools Rev 19

==

  • Android 4.4.2 (API 19)
    • Plate-forme SDK
    • Image du système ARM EABI v7a
    • Image du système Intel x86 Ato
    • API Google
    • Sources pour le SDK Android

==

  • Extras
    • Intel X86 Emulator Accelerator (HAXM) ET J’utilise également le programme d’installation de dmg, ainsi que le correctif installé, après l’avoir découvert.

AVD mis en place

  • Plate-forme 4.4.2
  • API niveau 19
  • CPU Intel Atom (x86)

Une fois que je lance avd:

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

Je suis suivi et l’émulateur finit par charger

 emulator: The memory needed by this VM exceeds the driver limit. HAX is not working and emulator runs in emulation mode 

Oui, cela devrait être corrigé, HAXM ne fonctionne pas. Quelle quantité de RAM est définie pour être utilisée dans votre configuration AVD?

768M est un bon chiffre, mais le plus important est que ce nombre doit être inférieur ou égal à l’utilisation de la mémoire que vous avez définie lors de l’installation de HAXM. Vous pouvez relancer son installation pour la modifier.

Si vous êtes sur un mac, vous pouvez installer haxm utilisant homebrew via cask, qui est une extension intégrée (à partir de 2015) qui permet d’installer des applications non open-source et de bureau (chrome, firefox, eclipse, etc.):

 brew cask install intel-haxm 

La façon dont je l’ai résolu est en définissant la limite de mémoire AVD et la mémoire HAXM à la même taille, soit 1 Go = 1024 Mo. L’AVD ne peut pas avoir de limite de mémoire supérieure à celle du HAXM.

1. Définition de la mémoire HAXM sur 1024 M

Le seul moyen de changer la mémoire HAXM est de le réinstaller. Je l’ai fait en utilisant le terminal. Recherchez Hardware_Accelerated_Execution_Manager dans votre machine. Puis changez le répertoire de ce dossier pour exécuter le script d’installation.

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

Peut avoir besoin de modifier les permissions:

 sudo chmod 755 "HAXM installation" 

Alors:

 ./HAXM\ installation -m 1024 -OR- sudo ./"HAXM installation" -m 1024 

2. Configurer le périphérique virtuel de la même taille avec la limite de mémoire HAXM

entrer la description de l'image ici

Cela fonctionne pour moi. Bonne chance!

installer le dernier HAXM à partir d’Intel: https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager

Après cela, ça marche

Pour les fenêtres.

Dans Android Studio :

Outils > Android > Gestionnaire AVD > Votre appareil > Icône Crayon > Afficher les parameters avancés > Mémoire et stockage > RAM > Définissez la taille de votre mémoire préférée.

Dans Control Panel :

Programmes et fonctionnalités > Intel Hardware Accelerated Execution Manager > Modifier > Définir manuellement > Définissez la taille de la RAM selon vos préférences.

Il est préférable que les tailles de RAM définies aux deux endroits soient identiques.

Vérifiez la dernière version du site Web Has on Intel et installez-le. Laissez le bélier dans la taille recommandée “préréglée 2048”, puis essayez d’exécuter l’application. Les choses devraient bien fonctionner.

Oui, cela devrait être corrigé, HAXM ne fonctionne pas.

HAXM fonctionne parfois; l’expérience avec HAXM est actuellement sporadique sur toutes les plateformes.

Par exemple, j’ai eu fin 2009 iMac avec un processeur 10.8.5 et i7 à 2.8GHz, Android SDK 22.6 avec tous les goodies mis à jour ce matin (03/05/14). API17 va construire des émulateurs avec une accélération HAXM sur cette machine iMac, API19 s’étouffe.

J’ai aussi début 2013 MBP 15 “Retina sous processeur 10.8.5 et i7 @ 2.7 Ghz, Android SDK 22.6 avec tous les goodies mis à jour ce matin (03/05/14). API17 va construire des émulateurs avec accélération HAXM, API19 fonctionne bien aussi .

Idem pour mon (personnel) fin 2013 MBP Retina 13 “avec i5 dual-core et Mavericks.

Il y a quelque chose pour la virtualisation au niveau de la puce qui manque aux anciens CPU (même les i7) que les nouvelles images API19 x86 nécessitent pour que HAXM fonctionne. Si API19 ne fonctionne pas, essayez API17 ou même 16.

Sur votre Mac Ouvrez le Finder puis Ctr + Alt + G après avoir /Users/${yourMacNameHere}/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager ceci /Users/${yourMacNameHere}/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager

votre va trouver l’installateur de l’accélérateur d’émulateur alors lancez-le et configurez la mémoire dont vous avez besoin de le modifier et réessayez d’exécuter votre application Android

Si vous utilisez un processeur Intel, assurez-vous que le programme d’installation de HAXM (Intel® Hardware Accelerated Execution Manager) est installé via SDK Manager en cochant cette option dans SDK Manager. puis lancez le programme d’installation HAXM par le chemin ci-dessous

 your_sdk_folder\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm.exe 

Vérifiez également la taille de la RAM allouée lors de l’installation de HAX afin qu’elle corresponde à la taille de RAM de votre émulateur.

Cette vidéo montre toutes les étapes requirejses qui peuvent vous aider à résoudre le problème.

Cette vidéo vous aidera également si vous rencontrez des problèmes après l’installation de HAXM.

Soit augmenter la taille de RAM allouée lors de l’installation de HAX, de manière à ce qu’elle corresponde exactement ou un peu plus à la taille de mémoire RAM de l’émulateur que vous souhaitez lancer en mode “Intel x86 Emulator Accelerator (HAXM)”,

Une fois que vous avez réussi avec cela, vous pouvez maintenant voir cela dans la console / log

entrer la description de l'image ici

Vous devez vérifier que la taille allouée lors de l’installation de HAX est la même que celle de la configuration de l’émulateur AVD.

Vous pouvez voir en français ici: http://blerow.blogspot.fr/2015/01/android-studio.html

La solution de geckob fonctionne parfaitement. Attention: le HAXM que vous fournissez est utilisé sur tous les périphériques en cours d’exécution. Donc, si vous testez sur un téléphone et une tablette en même temps et que chacun a une exigence de 1G. Assurez-vous ensuite que votre HAXM est au moins 2G.

Dans mon cas, cette erreur a été corrigée lorsque j’ai défini une mémoire HAXM égale à la mémoire AVD. Mémoire HAXM 1024 Mo = Mémoire AVD 1024 Mo

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

Jusqu’à ce point, l’erreur devrait être corrigée.

Maintenant, je liste mon environnement spécifique au cas où il pourrait être utile pour quelqu’un qui utilise OS X.

OS X EI Capitan 10.11.4

MacBook (13 pouces), Intel Core 2 Duo 2 GHz, 4 Go Ram.

Android Studio 2.1

Marshmallow (23) x86 n’a pas passé l’écran d’icône android clignotant pendant des heures paires.

Lollipop (22) x86 a passé l’écran d’icône Android clignotant et a ensuite montré

  • Démarrer Android (Optimiser les applications x)
  • Démarrage d’Android (démarrage d’applications)
  • Démarrer Android (mise à jour de la firebase database de contacts)
  • Démarrage d’Android (Finishing boot) et rest bloqué ici pendant des heures .

KitKat (19) x86 a fonctionné avec succès et j’ai pu installer le monde de salutations là-bas.

Télécharger HAXM depuis le SDK Manager

Ouvrez votre SDK Manager à partir d’Android Studio, cliquez sur l’icône affichée dans la capture d’écran.

entrer la description de l'image ici

Cliquez sur “Launch Standalone SDK Manager” dans la boîte de dialog “Default Settings”.

entrer la description de l'image ici

Vérifiez le nœud “Extras> Intel Emulator Accelerator (programme d’installation HAXM)” et procédez au téléchargement HAXM.

entrer la description de l'image ici

Installation ou modification de HAXM

Vous pouvez maintenant accéder avec l’installation (ou modifier installtino existant) de HAXM en accédant à l’emplacement de téléchargement. Entrez ce chemin dans “run”

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

et double-cliquez sur le fichier “intelhaxm-android.exe”

Vous pouvez augmenter la taille de la mémoire allouée à HAXM tout en modifiant l’installation HAXM existante. J’ai une machine avec 32 Go de RAM et je voudrais lancer plusieurs AVD en même temps (pour les tests automatisés, etc.). J’ai donc alloué 8 Go à HAXM.

Caveat

Si vous utilisez un AVD de 1 Go et que vous affectez 2 Go à HAXM, vous ne pouvez pas exécuter un autre AVD avec une mémoire vive supérieure à 1 Go. Assurez-vous que Android Device Monitor ne fonctionne pas lorsque vous modifiez ou installez HAXM (pour éviter toute surprise).

entrer la description de l'image ici

Ces étapes sont testées sur la plate-forme Windows, mais peuvent généralement être appliquées à d’autres plates-formes avec de légères modifications.

Mon problème était que je ne pouvais plus exécuter un émulateur qui avait fonctionné car j’avais quitté l’application de l’émulateur mais le processus n’était pas complètement terminé, alors j’essayais de lancer un autre émulateur alors que le précédent était toujours en cours d’exécution. Sur un mac, je devais utiliser le moniteur d’activité pour voir l’autre processus et le tuer. Pas:

  1. Open Activity Monitor (dans les utilitaires ou en utilisant Command + Space)
  2. Localisez le nom du processus, dans mon cas, qemu-system …
  3. Sélectionnez le processus.
  4. Forcer le processus à quitter en utilisant le bouton «x» en haut à gauche.
  5. Je n’ai pas eu à utiliser «Force Quit», juste le bouton «Quit», mais vous pouvez l’utiliser soit.

Rouvrez votre configuration de périphérique AVD. en éditant le périphérique dans le gestionnaire AVD. Procédez à la sélection de la version AVD Android. Dans le volet de droite, une recommandation est affichée en suivant cette recommandation et tout sera corrigé.

La mémoire par défaut atsortingbuée à HAX est 1024 Mo. Et l’émulateur a 1536 Mo apparemment pour Nexus 5x api 25.

si vous utilisez Android Studio,

  • il suffit d’aller aux outils -> gestionnaire AVD.
  • Ensuite, sélectionnez l’émulateur et cliquez sur le bouton crayon à droite pour le modifier.
  • Accédez aux parameters avancés dans la nouvelle fenêtre et modifiez la valeur de la RAM sur 1024.

Fonctionne comme un charme. 🙂

capture d'écran du studio Android