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.

4voto

0x8BADF00D Points 316

Vous pouvez également changer le paramètre CPT/ABI de x86 à arm dans les paramètres de l'émulateur.

2 votes

Mais alors l'émulateur va être lent comme l'enfer ... mais au moins vous pouvez exécuter les deux en même temps ;)

4voto

Bananeweizen Points 12524

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.

0 votes

S'agit-il d'un logiciel libre ?

0 votes

@vishnu viswanath Uniquement pour les cas d'utilisation à des fins non commerciales. Plus d'informations ici genymotion.com/legal/termes-et-conditions sous la rubrique "Licence accordée" : Limitée". Ce qui veut dire : Cette licence est accordée à l'utilisateur final uniquement et exclusivement dans le cadre d'un usage personnel, l'utilisateur final est un particulier, et non un professionnel, qui télécharge l'application pour des besoins personnels et privés, à l'exclusion de tout environnement commercial et professionnel.

1 votes

Cela a probablement disparu parce que genymotion n'utilisait pas KVM. Ni stable (parce qu'à un moment donné, ils vont commencer à l'utiliser) ni de solution performante.

3voto

DHH Points 39

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

3voto

Alain Pannetier Points 4488

Pour ceux qui développent sous Linux et sont coincés avec une multitude de systèmes dorsaux fonctionnant dans virtualbox, une solution simple consiste à créer une VM Android X86 virtualbox et à exposer le port 5555 sur l'interface NAT tunnelée depuis localhost via PAT. Pas besoin d'AVD à bras lent, pas besoin de libvirt/vagrant et encore moins de tuer kvm !

enter image description here

Puis faites-le savoir à adb

$ adb tcpip 5555
restarting in TCP mode port: 5555
$ adb connect 127.0.0.1
connected to 127.0.0.1:5555
$ adb devices
List of devices attached adb server
* daemon started successfully
emulator-5554   device

Ensuite, en appuyant sur run ou debug, dans Android Studio, le déploiement et l'exécution se feront sur cette VM. Vous avez un contrôle total sous le débogueur d'Android Studio.

0 votes

L'appareil apparaît comme "hors ligne" lorsqu'il fonctionne. adb devices :(

0 votes

La connexion à "VirtWifi" dans la machine virtuelle Android (dans VirtualBox) a résolu le problème !

0 votes

Pensez également à utiliser l'émulateur de terminal dans la VBox Android X86 pour modifier le fichier /etc/hosts, ou même à installer une application de serveur SSHD (espace utilisateur) sur la VM.

2voto

Yagamy Light Points 307

Ce n'est pas non plus une solution de contournement, mais c'est définitivement mieux que de désactiver KVM comme tout le monde le suggère.

Exécutez simplement l'invité virtualbox dans KVM à la place. Par exemple _( kvm ici, c'est juste un script qui exécute une qemu-system-x86_64 -enable-kvm )_ :

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

0 votes

Cela a résolu le problème pour moi, mais je ne parviens pas à faire en sorte que mon image virtuelle se connecte à Internet et, pour une raison quelconque, le mappage des claviers est tout bousillé

0 votes

@MikeSchem oui, malheureusement la configuration d'un réseau dans KVM/QEMU est un gros problème. Quand j'ai écrit la réponse, je n'ai pas eu le temps de mettre en place le réseau car après quelques manipulations, l'invité Windows a commencé à tomber avec un BSOD au démarrage dans KVM, alors que je travaillais toujours en VB.

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