120 votes

L'émulateur Android et la virtualbox ne peuvent pas fonctionner en même temps

Chaque fois que j'ai Virtualbox en cours d'exécution, je ne peux pas démarrer une image d'émulateur Android (et vice versa). Le message d'erreur dans le gestionnaire AVD est le suivant

ioctl(KVM_CREATE_VM) failed: Device or resource busy
ko:failed to initialize KVM

Comment faire pour que les deux fonctionnent en même temps ?

C'est une Ubuntu 64 bit, tous les logiciels impliqués sont de la dernière version publiée.

42voto

traber Points 421

La suppression des modules du noyau kvm (en utilisant 'sudo rmmod kvm_intel kvm') permet de faire fonctionner Virtualbox et l'émulateur Android en même temps mais les performances de l'émulateur Android dans une telle configuration sont extrêmement mauvaises. Si possible, il est préférable d'arrêter l'émulateur Virtualbox et de décharger son pilote (vboxdrv) en exécutant 'sudo /etc/init.d/vboxdrv stop'. Google suggère cette "solution" sur son site Page Émulateur Android dans la section consacrée à Linux.

10 votes

Mon backend, qui nécessite que l'application ait des données, fonctionne sur VirtualBox (Vagrant), donc ce n'est pas une bonne option :P

4 votes

Cette solution est due au fait que j'ai besoin de faire tourner les deux en même temps mon service HTTPD est dans Virtual Box, alors que mon application est dans Android . /Je soupire. Je suppose qu'il est temps de relancer le serveur de développement.

1 votes

Une autre option peut être d'utiliser Docker au lieu de VirtualBox en conjonction avec l'émulateur Android.

33voto

J'ai le même conflit avec VirtualBox. Je l'ai résolu en utilisant un ABI différent de "x86" (armeabi-v7a dans mon cas).

0 votes

Bien plus élégant que de démolir la VM existante. Merci.

4 votes

C'est triste d'entendre cela.

0 votes

L'émulateur fonctionnera probablement plus lentement de cette façon, mais c'est une option.

19voto

Ole Tange Points 4907

J'ai arrêté les machines virtuelles que j'avais en cours d'exécution avec VirtualBox. Cela a fait disparaître l'erreur.

1 votes

Cela a fonctionné pour moi dans Fedora 20. Avec des écrans plus grands, plus de RAM et des espaces de travail Gnome 3, il est facile d'oublier que vous utilisez une autre machine quelque part en arrière-plan. killall virtualbox devrait le faire.

0 votes

Fonctionne mais n'est pas la meilleure solution. Vous pouvez avoir les deux (voir la réponse de Stanislav).

0 votes

J'ai eu ce problème avec Ubuntu 16 en utilisant une machine docker et des pilotes de boîtes virtuelles. En arrêtant les vms avec docker-machine stop machine-name résolu le problème comme suggéré dans cette réponse.

6voto

J'ai eu le même problème sur Ubuntu 13.10. Essayez de supprimer les modules kvm et kvm_intel du noyau.

Pour ce faire :

  1. Arrêtez tous les émulateurs.
  2. Exécutez la commande : sudo rmmod kvm_intel kvm' (en anglais)

Sans ces modules du noyau, les émulateurs Virtualbox et Android peuvent fonctionner en même temps.

BTW, je ne sais pas pourquoi les modules sont chargés.

17 votes

Un mot d'avertissement : bien que cela fonctionne, la suppression des modules du noyau KVM entraînera une diminution substantielle des performances avec l'image Android d'Intel, puisque vous perdez la prise en charge de l'accélération matérielle du CPU sans les modules du noyau.

2 votes

@Tajchert : pour revenir en arrière : 'sudo modprobe kvm_intel kvm'.

0 votes

X86... les émulateurs refusaient de fonctionner sans les modules KVM. Bah.

5voto

plowman Points 5106

Il y a enfin une solution à ce problème.

Suivez ces étapes pour macOS :

  1. Dans Android Studio, allez dans Outils -> Android -> SDK Manager.

  2. Confirmez que vous avez la dernière version de Intel Emulator Accelerator HAXM installée (v6.1.1). Preferences panel in Android Studio .

  3. Ir a la extras du répertoire de l'emplacement du SDK Android affiché dans les préférences. Sous MacOS, vous pouvez procéder ainsi :

    open ~/Library/Android/sdk/extras

  4. Installez le packing HAXM en ouvrant IntelHAXM_6.1.1.dmg, puis en ouvrant IntelHAXM_6.1.1.mpkg dans le dossier monté, et en suivant les instructions du programme d'installation.

Suivez ces étapes pour Windows :

  1. Dans Android Studio, allez dans Outils -> Android -> SDK Manager.

  2. Confirmez que vous avez la dernière version de Intel Emulator Accelerator HAXM installée (v6.1.1). Preferences panel in Android Studio .

  3. Ir a la extras du répertoire de l'emplacement du SDK Android affiché dans les préférences. Quelque chose comme :

    C:\Users\<username>\AppData\Local\Android\sdk\extras

  4. Dans ce répertoire se trouve une sorte de fichier comme intelhaxm-android.exe . Exécutez-le.

4 votes

Existe-t-il également un correctif pour Ubuntu 16.04.3 ?

0 votes

HAXM ne prend pas en charge les machines virtuelles imbriquées !

0 votes

Qu'en est-il de KVM ? Comment puis-je faire la même chose ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X