web-dev-qa-db-fra.com

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

À chaque fois que Virtualbox est en cours d'exécution, je ne peux pas démarrer une image d'émulateur Android (et inversement). Le message d'erreur dans le gestionnaire AVD est

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

Comment puis-je faire fonctionner les deux en même temps?

Il s’agit d’un Ubuntu 64 bits, tous les logiciels impliqués sont de la dernière version publiée.

82
Bananeweizen

La suppression des modules du noyau kvm (à l'aide de 'Sudo rmmod kvm_intel kvm') permet d'exécuter simultanément l'émulateur Virtualbox et Android, mais les performances de l'émulateur Android sont extrêmement mauvaises. Si possible, il est préférable d’arrêter l’émulateur de Virtualbox et de décharger son pilote (vboxdrv) en exécutant «Sudo /etc/init.d/vboxdrv stop». Google suggère cette "solution" sur la page de son émulateur Android dans la section consacrée à Linux. 

38
traber

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

29
Stanislav Makarenko

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

14
Ole Tange

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

Pour faire ça:

  1. Arrêtez tous les émulateurs. 
  2. Exécutez la commande: 'Sudo rmmod kvm_intel kvm'

Sans ces modules de noyau, les émulateurs Virtualbox et Android peuvent fonctionner simultanément.

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

6
Alexander Zhukov

Il y a enfin un correctif pour cela.

Suivez ces étapes pour macOS:

  1. Dans Android Studio, sélectionnez Outils -> Android -> Gestionnaire de SDK.

  2. Confirmez que vous disposez de la dernière version d'Intel Emulator Accelerator HAXM (v6.1.1)  Preferences panel in Android Studio

  3. Accédez au répertoire extras de l'emplacement du SDK Android affiché dans les préférences. Sur MacOS, vous pouvez faire ceci:

    open ~/Library/Android/sdk/extras

  4. Installez le pack 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, sélectionnez Outils -> Android -> Gestionnaire de SDK.

  2. Confirmez que vous disposez de la dernière version d'Intel Emulator Accelerator HAXM (v6.1.1)  Preferences panel in Android Studio

  3. Accédez au répertoire extras 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écuter.

5
plowman

Vous pouvez également modifier le paramètre CPT/ABI de x86 pour armer les paramètres de l'émulateur.

4
0x8BADF00D

J'ai finalement rendu ce problème obsolète en utilisant Genymotion au lieu de l'émulateur Android standard. En plus de ne pas avoir ce conflit, il est plusieurs fois plus rapide que l'émulateur normal.

3
Bananeweizen

Une autre solution consiste à utiliser vagrant soutenu par libvirt en utilisant vagrant-libvirt plugin.

2
DHH

Bien que ce soit une solution de contournement non plus, mais définitivement mieux que de désactiver KVM comme le suggère tout le monde.

Il suffit d’exécuter l’invité virtualbox dans KVM à la place. Par exemple (kvm voici juste un script exécutant un qemu-system-x86_64 -enable-kvm) :

kvm Win7.vdi -boot c -m 2G -vga qxl
2
Hi-Angel

Voici comment résoudre ce problème, en utilisant vagrant et ses deux plugins 'libvirt' et 'mutate':

  1. Ouvrir le terminal et définir les variables d'environnement:

     export VAGRANT_DEFAULT_PROVIDER=libvirt
     export VAGRANT_HOME=/home/directoryToStoreVagrant/
     VBoxManage list vms
    
  2. Maintenant, copiez le code obtenu à partir de la dernière commande comme "c1530713-aec2-4415-a6b5-b057928c7e5f" et utilisez-le dans:

    paquet vagrant --base c1530713-aec2-4415-a6b5-b057928c7e5f --output window7.box

     vagrant init window7
     vagrant up window7 --provider=libvirt 
     vagrant box list
    
  3. Vous devez installer des plugins vagrant comme libvirt et mutate . Mutate convertira .box en libvirt VM:

    vagrant plugin installez vagrant-libvirt vagrant plugin installez vagrant-mutate

  4. Conversion de vagrant box en libvirt:

    vagrant mutate window7_.box libvirt

  5. Vous pouvez maintenant initialiser la machine virtuelle vagabonde. Si une erreur persiste, déplacez pour éditer votre fichier Vagrant. Comme pour moi je décommenter la ligne commence par config.vm.network puis lancez la commande ci-dessous:

    vagrant up --provider=libvirt

Voici comment j'ai pu me débarrasser complètement de cette erreur

1
muhammad tayyab

Je l'ai résolu en installant HAXM 6.1.2.

Veuillez vous référer au lien suivant pour plus de détails: - https://forums.docker.com/t/cant-using-docker-for-mac-with-Android-emulator-haxm/8939/11

1
Rohit Agarwal

Dans certains cas, nous devons garder les machines de virtualbox opérationnelles et par conséquent, laisser toutes les machines de virtualbox continuer à fonctionner, basculer sur un périphérique mobile physique pour tester votre application plutôt que sur un émulateur.

vous pouvez utiliser expo si vous utilisez réact-native ou votre véritable appareil Android/iOS.

0
Ashwin J Chhetri

Cela peut être hors sujet, en raison du fait que OP a demandé VirtualBox + KVM simultanément, mais cela pourrait néanmoins être la solution de contournement: sur Ubuntu 18.10 x64. La désactivation de KVM n'est pas une option, car les performances d'AVD sont essentielles pour moi. J'ai installé Windows 7 via Virtual Machine Manager (paquet virt-manager) et maintenant, les logiciels AVD et Windows 7 sont accélérés matériellement.

0
vocasle