Zawsze, gdy mam uruchomione Virtualbox, nie mogę uruchomić obrazu emulatora Androida (i odwrotnie). Komunikat o błędzie w menedżerze AVD to
ioctl(KVM_CREATE_VM) failed: Device or resource busy
ko:failed to initialize KVM
Jak mogę sprawić, by oba działały w tym samym czasie?
To jest 64-bitowy Ubuntu, całe oprogramowanie jest w najnowszej wydanej wersji.
android-emulator
virtualbox
kvm
Bananeweizen
źródło
źródło
Mam ten sam konflikt VirtualBox. Rozwiązano to za pomocą ABI innego niż „x86” (w moim przypadku armeabi-v7a)
źródło
Zatrzymałem maszyny wirtualne, które pracowałem z VirtualBox. To sprawiło, że błąd zniknął.
źródło
killall virtualbox
powinien to zrobić.docker-machine stop machine-name
rozwiązania problemu, zgodnie z sugestią zawartą w tej odpowiedziMiałem ten sam problem na Ubuntu 13.10. Spróbuj usunąć moduły jądra kvm i kvm_intel.
Aby to zrobić:
Bez tych modułów jądra emulatory Virtualbox i Android mogą działać w tym samym czasie.
Swoją drogą nie wiem dlaczego moduły są ładowane.
źródło
W końcu jest na to rozwiązanie.
Wykonaj następujące kroki dla macOS :
W Android Studio przejdź do Narzędzia -> Android -> Menedżer SDK
Upewnij się, że masz zainstalowaną najnowszą wersję programu Intel Emulator Accelerator HAXM (v6.1.1) .
Przejdź do
extras
katalogu lokalizacji Android SDK wyświetlonej w preferencjach. Na MacOS możesz to zrobić:open ~/Library/Android/sdk/extras
Zainstaluj opakowanie HAXM, otwierając IntelHAXM_6.1.1.dmg, a następnie otwierając IntelHAXM_6.1.1.mpkg w zamontowanym folderze i postępując zgodnie z instrukcjami instalatora.
Wykonaj następujące kroki dla systemu Windows :
W Android Studio przejdź do Narzędzia -> Android -> Menedżer SDK
Upewnij się, że masz zainstalowaną najnowszą wersję programu Intel Emulator Accelerator HAXM (v6.1.1) .
Przejdź do
extras
katalogu lokalizacji Android SDK wyświetlonej w preferencjach. Coś jak:C:\Users\<username>\AppData\Local\Android\sdk\extras
W tym katalogu jest jakiś rodzaj pliku
intelhaxm-android.exe
. Uruchom.źródło
Możesz także zmienić ustawienie CPT / ABI z x86 na uzbrojenie w ustawieniach emulatora.
źródło
W końcu ten problem stał się przestarzały, używając Genymotion zamiast standardowego emulatora Androida. Poza tym, że nie ma tego konfliktu, jest kilka razy szybszy niż zwykły emulator.
źródło
Innym rozwiązaniem jest użycie vagranta wspieranego przez libvirt przy użyciu wtyczki vagrant-libvirt .
źródło
Chociaż jest to również obejście, ale zdecydowanie lepsze niż wyłączenie KVM, jak wszyscy sugerują.
Zamiast tego po prostu uruchom gościa virtualbox w KVM. Na przykład (
kvm
tutaj jest tylko skrypt uruchamiający aqemu-system-x86_64 -enable-kvm
) :źródło
Rozwiązałem to, instalując HAXM 6.1.2.
Aby uzyskać szczegółowe informacje, zapoznaj się z poniższym linkiem: - https://forums.docker.com/t/cant-using-docker-for-mac-with-android-emulator-haxm/8939/11
źródło
W niektórych przypadkach musimy utrzymywać maszyny virtualbox w stanie nieprzerwanym i działającym, dlatego pozwól, aby wszystkie maszyny virtualbox działały, przełącz się na fizyczne urządzenie mobilne, aby przetestować aplikację zamiast emulatora.
możesz użyć expo, jeśli robisz z natywnym reagowaniem lub prawdziwym urządzeniem z Androidem / iOS.
źródło
Może to być poza tematem, ponieważ OP zażądał VirtualBox + KVM w tym samym czasie, ale nadal może to być obejście: szukałem sposobu na uruchomienie systemu Windows 7 i AVD na Ubuntu 18.10 x64. Wyłączenie KVM nie wchodzi w grę, ponieważ wydajność AVD jest dla mnie krytyczna. Zainstalowałem Windows 7 przez Virtual Machine Manager (pakiet virt-manager) i teraz zarówno AVD, jak i Windows 7 są akcelerowane sprzętowo.
źródło
Oto jak rozwiązano ten problem, używając vagrant i dwóch wtyczek „libvirt” i „mutate”:
Otwórz terminal i ustaw zmienne środowiskowe:
Teraz skopiuj a kod uzyskany z ostatniego polecenia, na przykład „c1530713-aec2-4415-a6b5-b057928c7e5f” i użyj w następujący sposób:
Musisz zainstalować wtyczki włóczęgów, takie jak libvirt i mutate . Mutate przekonwertuje .box do libvirt VM:
Konwersja Vagrant Box do libvirt:
vagrant mutate window7_.box libvirt
Teraz możesz zainicjować vagrant VM. Jeśli jakikolwiek błąd nadal występuje, przejdź do edycji pliku Vagrant. Tak jak dla mnie odkomentowuję linię zaczynającą się od config.vm.network, a następnie uruchamiam poniższe polecenie:
vagrant up --provider=libvirt
W ten sposób mogłem całkowicie pozbyć się tego błędu
źródło