每当我运行Virtualbox时,我都无法启动Android模拟器图像(反之亦然)。 AVD管理器中的错误消息是
ioctl(KVM_CREATE_VM) failed: Device or resource busy
ko:failed to initialize KVM
如何让两者同时运行?
这是一个Ubuntu 64位,所有涉及的软件都是最新发布的版本。
答案 0 :(得分:39)
删除kvm内核模块(使用'sudo rmmod kvm_intel kvm')可以同时运行Virtualbox和Android模拟器,但在这样的设置中Android模拟器的性能非常糟糕。如果可能,最好关闭Virtualbox模拟器并通过运行'sudo /etc/init.d/vboxdrv stop'卸载其驱动程序(vboxdrv)。谷歌在关于Linux的部分Android Emulator page上建议了这个“解决方案”。
答案 1 :(得分:29)
我遇到了相同的VirtualBox冲突。 使用不同于“x86”的ABI解决了它(在我的案例中是armeabi-v7a)
答案 2 :(得分:15)
我停止了使用VirtualBox运行的虚拟机。这使错误消失。
答案 3 :(得分:5)
我在Ubuntu 13.10上遇到了同样的问题。 尝试删除kvm和kvm_intel内核模块。
要做到这一点:
如果没有这些内核模块,Virtualbox和Android模拟器可以同时工作。
顺便说一句,我不知道为什么模块被加载了。答案 4 :(得分:5)
最后有一个解决方法。
对 macOS
按照以下步骤操作:在Android Studio中转到工具 - > Android - > SDK Manager
转到首选项中显示的Android SDK位置的outputTable = matrix(NA_character_, nrow = 102, ncol = 3)
目录。在MacOS上,您可以这样做:
extras
通过打开IntelHAXM_6.1.1.dmg安装HAXM包装,然后在已安装的文件夹中打开IntelHAXM_6.1.1.mpkg,并按照安装程序说明进行操作。
对 Windows :
执行以下步骤答案 5 :(得分:4)
您还可以在模拟器设置中将CPT / ABI设置从x86更改为arm。
答案 6 :(得分:3)
另一种解决方案是使用vagrant-libvirt插件使用libvirt支持的流浪汉。
答案 7 :(得分:2)
虽然这也是一种解决方法,但绝对比每个人都建议的禁用KVM更好。
只需在KVM中运行virtualbox guest虚拟机即可。例如(kvm
这里只是一个运行qemu-system-x86_64 -enable-kvm
的脚本:
kvm Win7.vdi -boot c -m 2G -vga qxl
答案 8 :(得分:1)
我通过安装HAXM 6.1.2解决了这个问题。
有关详细信息,请参阅以下链接: - https://forums.docker.com/t/cant-using-docker-for-mac-with-android-emulator-haxm/8939/11
答案 9 :(得分:1)
以下是使用 vagrant 解决此问题的方法,它是两个插件'libvirt'和'mutate':
打开终端并设置环境变量:
export VAGRANT_DEFAULT_PROVIDER=libvirt
export VAGRANT_HOME=/home/directoryToStoreVagrant/
VBoxManage list vms
现在复制一个从上一个命令获得的代码,例如 “ c1530713-aec2-4415-a6b5-b057928c7e5f”并用于以下用途:
无用的包装--base c1530713-aec2-4415-a6b5-b057928c7e5f --output window7.box
vagrant init window7
vagrant up window7 --provider=libvirt
vagrant box list
您需要安装一些流浪汉插件,例如 libvirt 和 变异。 Mutate会将.box转换为libvirt VM:
vagrant插件安装vagrant-libvirt vagrant插件安装vagrant-mutate
将无业游民的盒子转换为libvirt:
vagrant mutate window7_.box libvirt
现在,您可以初始化无所事事的VM。如果仍然存在任何错误,请移至 编辑您的Vagrant文件。对我来说,我取消注释行的开头 config.vm.network ,然后在下面运行命令:
vagrant up --provider=libvirt
这就是我能够完全消除此错误的方式
答案 10 :(得分:0)
在某些情况下,我们需要保持VirtualBox计算机的正常运行,因此让所有VirtualBox计算机保持运行,切换到物理移动设备以测试您的应用程序而不是模拟器。
如果您正在使用react-native或真正的android / ios设备,则可以使用expo。
答案 11 :(得分:0)
由于OP同时请求了VirtualBox + KVM,所以这可能不合时宜,但是仍然可以采用以下解决方法: 我一直在寻找在Ubuntu 18.10 x64上启动Windows 7和AVD的方法。由于AVD的性能对我来说至关重要,因此不能选择关闭KVM。我已经通过Virtual Machine Manager(virt-manager软件包)安装了Windows 7,现在AVD和Windows 7都通过硬件加速。
答案 12 :(得分:0)
对于那些在 Linux 上进行开发并且受困于在 virtualbox 内运行的大量后端系统的人,一个简单的解决方案是创建一个 virtualbox X86 Android VM 并在从 localhost 通过隧道传输的 NAT 接口上公开 5555 端口拍。 不需要slow arm AVD,不需要libvirt/vagrant更不用杀kvm!
然后让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
然后,按运行或调试,Android Studio 将在该 VM 上部署和执行。 您可以完全控制 Android Studio 调试器。