8 votes

Comment puis-je faire fonctionner l'émulateur Android avec une autre VM ?

Chaque fois que j'ouvre un émulateur Android alors qu'un autre type de VM est déjà en cours d'exécution, j'obtiens les messages d'erreur "habituels" :

émulateur : Échec de la synchronisation du registre vcpu
émulateur : Échec de la synchronisation du contexte vcpu HAX

Ici Il est recommandé de ne pas exécuter une autre VM, mais que faire si j'ai besoin d'une autre VM pour le développement, ou pour exécuter le serveur de mon application Android ? Existe-t-il un moyen d'exécuter une VM invitée VirtualBox Linux et l'émulateur Android en même temps ? Mon système d'exploitation hôte est OSX, si cela a de l'importance.

2voto

Daniel Points 444

Vous ne pouvez pas faire tourner deux piles d'émulation différentes sur votre processeur en même temps. Désolé, ça n'arrivera pas.

Mise à jour : Votre processeur ne peut exécuter qu'un seul système d'émulation à la fois. Les modules du noyau se "réservent" le droit d'utiliser les capacités d'émulation du processeur à l'exclusion de tout autre émulateur qui voudrait l'utiliser. Donc vous ne pouvez utiliser VMware, VirtualBox, HyperV, etc. que séparément.

2voto

Pharaoh Tools Points 36

Oui, il existe un moyen d'exécuter une VM invitée VirtualBox Linux et l'émulateur Android en même temps.

J'ai une installation qui fonctionne exactement de cette façon maintenant, et c'est raisonnablement simple. Pour résoudre le problème ci-dessus, vous pouvez utiliser Genymotion comme émulateur Android, et Virtualbox pour votre machine virtuelle Linux.

Cela contrecarre le problème décrit dans les réponses ci-dessus car Genymotion utilise Virtualbox "en dessous" comme hyperviseur, ce qui signifie que vos deux machines virtuelles (l'invité Linux et l'émulateur Android) fonctionnent dans le même hyperviseur. C'est exactement ce à quoi les hyperviseurs sont destinés.

Aussi, pour clarifier le sens de l'affiche dans le lien que vous avez donné, qui déclare "il est recommandé de ne pas exécuter une autre VM", je pense que ce qu'il veut dire est que vous ne pouvez pas exécuter d'autres hyperviseurs (Docker et Virtualbox sont décrits là) en parallèle avec Android Emulator, pour les raisons décrites par d'autres réponses ici.

0voto

Matthew Read Points 50150

émulateur : Échec de la synchronisation du contexte vcpu HAX

HAX signifie H ardware A e accéléré X ecution. Il n'est pas vraiment possible de faire fonctionner correctement deux hyperviseurs différents en utilisant l'accélération matérielle - ils ne savent pas ce que fait l'autre et tous deux essaieraient d'utiliser le matériel à leurs propres fins. Essayer de le faire revient plus ou moins à essayer de faire fonctionner deux OS non virtualisés en même temps, ce qui ne peut clairement pas fonctionner.

Il est possible d'exécuter une machine virtuelle purement logicielle en même temps qu'un émulateur Android, mais ses performances en pâtiront grandement (selon l'usage que vous en faites). J'ai constaté que l'émulateur Android est si lent qu'il est inutile sans l'accélération matérielle, donc vous ne voulez certainement pas le désactiver.

Cependant, Memu semble assez performant et fonctionne bien avec VMware sur ma machine, donc cela pourrait être une option pour vous. Je n'ai pas essayé de développer avec Memu, cependant ; je n'ai pas réussi à faire fonctionner ADB.

-1voto

grandnasty Points 99

C'est en effet possible. Vous devez exécuter la version 6.1.1 de HAXM au moins.

Si vous passez à cette version, cela fonctionnera.

Après la mise à niveau, assurez-vous que la version correcte est en cours d'exécution en exécutant :

$ANDROID_HOME/extras/intel/Hardware_Accelerated_Execution_Manager/silent_install.sh -v

S'il s'agit d'une version plus ancienne, vous devrez peut-être lancer le programme d'installation manuellement en l'exécutant :

sudo $ANDROID_HOME/extras/intel/Hardware_Accelerated_Execution_Manager/silent_install.sh

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X