webentwicklung-frage-antwort-db.com.de

Android-Emulator und Virtualbox können nicht gleichzeitig ausgeführt werden

Wenn Virtualbox ausgeführt wird, kann ich kein Android-Emulator-Image starten (und umgekehrt). Die Fehlermeldung im AVD Manager lautet

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

Wie kann ich beide gleichzeitig ausführen lassen?

Das ist eine 64-Bit-Version von Ubuntu, die gesamte Software ist von der neuesten Version.

82
Bananeweizen

Durch das Entfernen der kvm-Kernelmodule (mithilfe von 'Sudo rmmod kvm_intel kvm') können die Virtualbox und der Android-Emulator gleichzeitig ausgeführt werden. Die Leistung des Android-Emulators in einem solchen Setup ist jedoch äußerst schlecht. Wenn möglich, empfiehlt es sich, den Virtualbox-Emulator herunterzufahren und den Treiber (vboxdrv) zu deinstallieren, indem Sie "Sudo /etc/init.d/vboxdrv stop" ausführen. Google schlägt diese "Lösung" auf seiner Android Emulator-Seite im Abschnitt zu Linux vor. 

38
traber

Ich habe den gleichen VirtualBox-Konflikt erhalten.

29

Ich habe die virtuellen Maschinen gestoppt, die ich mit VirtualBox ausgeführt habe. Dadurch verschwand der Fehler.

14
Ole Tange

Ich hatte das gleiche Problem auf Ubuntu 13.10 . Versuchen Sie, die Kernmodule kvm und kvm_intel zu entfernen.

Um dies zu tun:

  1. Stoppen Sie alle Emulatoren. 
  2. Führen Sie den Befehl aus: 'Sudo rmmod kvm_intel kvm'

Ohne diese Kernelmodule können Virtualbox und Android-Emulatoren gleichzeitig arbeiten.

Übrigens weiß ich nicht, warum die Module geladen werden. 

6

Hier gibt es endlich ein Update.

Folgen Sie diesen Schritten für macOS:

  1. In Android Studio Gehen Sie zu Extras -> Android -> SDK-Manager

  2. Bestätigen Sie, dass Sie die neueste Version von Intel Emulator Accelerator HAXM installiert haben (v6.1.1)  Preferences panel in Android Studio

  3. Wechseln Sie in das Verzeichnis extras des Android-SDK-Speicherorts, der in den Voreinstellungen angezeigt wird. Unter MacOS können Sie Folgendes tun:

    open ~/Library/Android/sdk/extras

  4. Installieren Sie das HAXM-Paket, indem Sie IntelHAXM_6.1.1.dmg und dann IntelHAXM_6.1.1.mpkg im eingebundenen Ordner öffnen.

Führen Sie die folgenden Schritte für Windows aus:

  1. In Android Studio Gehen Sie zu Extras -> Android -> SDK-Manager

  2. Bestätigen Sie, dass Sie die neueste Version von Intel Emulator Accelerator HAXM installiert haben (v6.1.1)  Preferences panel in Android Studio

  3. Wechseln Sie in das Verzeichnis extras des Android-SDK-Speicherorts, der in den Voreinstellungen angezeigt wird. So etwas wie:

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

  4. In diesem Verzeichnis befindet sich eine Art Datei wie intelhaxm-Android.exe. Starte es.

5
plowman

Sie können auch die CPT/ABI-Einstellung in den Emulatoreinstellungen von x86 auf arm setzen.

4
0x8BADF00D

Ich habe dieses Problem durch die Verwendung von Genymotion anstelle des Android-Emulators endgültig überflüssig gemacht. Abgesehen davon, dass er diesen Konflikt nicht hat, ist er um ein Vielfaches schneller als der normale Emulator.

3
Bananeweizen

Eine andere Lösung ist die Verwendung von libvirt-unterstütztem Vagrant mit vagrant-libvirt plugin.

2
DHH

Es ist zwar auch eine Problemumgehung, aber definitiv besser als die Deaktivierung von KVM, wie von allen vorgeschlagen.

Führen Sie einfach den Virtualbox-Gast stattdessen in KVM aus. Zum Beispiel (kvm hier ist nur ein Skript, das einen qemu-system-x86_64 -enable-kvm ausführt) :

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

Hier ist, wie dieses Problem mit vagrant und den beiden Plugins 'libvirt' und 'mutate' behoben wurde:

  1. Öffnen Sie das Terminal und setzen Sie die Umgebungsvariablen:

     export VAGRANT_DEFAULT_PROVIDER=libvirt
     export VAGRANT_HOME=/home/directoryToStoreVagrant/
     VBoxManage list vms
    
  2. Kopieren Sie nun den Code aus dem letzten Befehl wie "c1530713-aec2-4415-a6b5-b057928c7e5f" und verwenden Sie ihn im Folgenden:

    vagabundpaket --base c1530713-aec2-4415-a6b5-b057928c7e5f --output window7.box

     vagrant init window7
     vagrant up window7 --provider=libvirt 
     vagrant box list
    
  3. Sie müssen einige bekannte Plugins wie libvirt und mutate installieren. Mutate konvertiert .box nach libvirt VM:

    vagrant plugin installiere vagrant-libvirt vagrant plugin installiere vagrant-mutate

  4. Vagrant box zu libvirt konvertieren:

    vagrant mutate window7_.box libvirt

  5. Jetzt können Sie die virtuelle Maschine initialisieren. Wenn ein Fehler weiterhin auftritt, bearbeiten Sie Ihre Vagrant-Datei. Wie bei mir beginnt die Zeile mit config.vm.network und führt dann den folgenden Befehl aus:

    vagrant up --provider=libvirt

So konnte ich diesen Fehler komplett beseitigen

1
muhammad tayyab

Ich habe es durch die Installation von HAXM 6.1.2 gelöst.

Weitere Informationen finden Sie unter folgendem Link: - https://forums.docker.com/t/cant-using-docker-for-mac-with-Android-emulator-haxm/8939/11

1
Rohit Agarwal

In einigen Fällen müssen Virtualbox-Maschinen am Laufen gehalten werden. Lassen Sie daher alle Virtualbox-Maschinen weiterlaufen. Wechseln Sie zu einem physischen mobilen Gerät, um Ihre Anwendung anstelle des Emulators zu testen.

sie können expo verwenden, wenn Sie reaktives oder ein echtes Android/ios-Gerät verwenden.

0

Dies könnte nicht der Fall sein, da OP in derselben Zeit VirtualBox + KVM angefordert hat, aber es könnte auch die Problemumgehung sein: auf Ubuntu 18.10 x64. Das Deaktivieren von KVM ist keine Option, da die Leistung von AVD für mich kritisch ist. Ich habe Windows 7 über Virtual Machine Manager (virt-manager package) installiert und jetzt sind sowohl der AVD als auch Windows 7 hardwarebeschleunigt.

0
vocasle