可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
Whenever I have Virtualbox running, I cannot start an Android emulator image (and vice versa). The error message in the AVD manager is
ioctl(KVM_CREATE_VM) failed: Device or resource busy
ko:failed to initialize KVM
How can I make both run at the same time?
That is a Ubuntu 64 bit, all involved software is of the latest released version.
回答1:
Removing the kvm kernel modules (using 'sudo rmmod kvm_intel kvm') makes it possible to run the Virtualbox and the Android emulator at the same time but the performance of the Android emulator in such a setup is extremely bad. If possible it is better to shutdown the Virtualbox emulator and unload its driver (vboxdrv) by running 'sudo /etc/init.d/vboxdrv stop'. Google suggests this "solution" on its Android Emulator page in the section about Linux.
回答2:
I got the same VirtualBox conflict.
Solved it by using ABI different from "x86" (armeabi-v7a in my case)
回答3:
I stopped the virtual machines I had running with VirtualBox. This made the error disappear.
回答4:
I had the same problem on Ubuntu 13.10.
Try to remove kvm and kvm_intel kernel modules.
To do this:
- Stop all emulators.
- Run command: 'sudo rmmod kvm_intel kvm'
Without these kernel modules Virtualbox and Android emulators can work at the same time.
BTW, I do not know why the modules are loaded.
回答5:
There is finally a fix for this.
Follow these steps for macOS:
In Android Studio Go to Tools -> Android -> SDK Manager
Confirm you have the latest version of Intel Emulator Accelerator HAXM installed (v6.1.1) .
Go to the extras
directory of the Android SDK location displayed in the preferences. On MacOS you can do this:
open ~/Library/Android/sdk/extras
Install the HAXM packing by opening IntelHAXM_6.1.1.dmg, then opening IntelHAXM_6.1.1.mpkg in the mounted folder, and following the installer instructions.
Follow these steps for Windows:
In Android Studio Go to Tools -> Android -> SDK Manager
Confirm you have the latest version of Intel Emulator Accelerator HAXM installed (v6.1.1) .
Go to the extras
directory of the Android SDK location displayed in the preferences. Something like:
C:\Users\<username>\AppData\Local\Android\sdk\extras
In that directory is some kind of file like intelhaxm-android.exe
. Run it.
回答6:
You also can change CPT/ABI setting from x86 to arm in emulator settings.
回答7:
I finally made this problem obsolete by using Genymotion instead of the standard Android emulator. Besides not having this conflict, it is several times faster than the normal emulator.
回答8:
Though it's a workaround either, but definitely better than disabling KVM as everyone suggesting.
Just run the virtualbox guest in KVM instead. For example (kvm
here is just a script running a qemu-system-x86_64 -enable-kvm
):
kvm Win7.vdi -boot c -m 2G -vga qxl
回答9:
I resolved it by installing HAXM 6.1.2.
Please refer to the following link for details :- https://forums.docker.com/t/cant-using-docker-for-mac-with-android-emulator-haxm/8939/11
回答10:
Another solution is to use libvirt backed vagrant using vagrant-libvirt plugin.
回答11:
In some cases, we need to keep virtualbox machines up and running therefore let all the virtualbox machines keep running, switch to physical mobile device to test your application instead of emulator.
you can use expo if you are doing with react-native or your real android/ios device.
回答12:
This might be out of topic, due to the fact that OP requested VirtualBox + KVM in the same time, but still, it might be the workaround:
I was looking for a way to launch Windows 7 and AVD on Ubuntu 18.10 x64. Turning off KVM is not an option due to the fact that performance of AVD is critical to me. I have installed Windows 7 via Virtual Machine Manager (virt-manager package) and now both the AVD and Windows 7 are hardware accelerated.