Android 模拟器和虚拟机不能同时运行

当我运行 Virtualbox 时,我无法启动 Android 模拟器映像(反之亦然)。AVD 管理器中的错误消息是

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

我怎样才能让两者同时运行?

That is a Ubuntu 64 bit, all involved software is of the latest released version.

48295 次浏览

我在 Ubuntu 13.10上遇到过同样的问题。 尝试删除 kvm 和 kvm _ intel 内核模块。

To do this:

  1. 停止所有模拟器。
  2. 运行命令: ‘ sudo rmmod kvm _ intelkvm’

如果没有这些内核模块,Virtualbox 和 Android 模拟器可以同时工作。

BTW, I do not know why the modules are loaded.

删除 kvm 内核模块(使用“ sudo rmmod kvm _ tel kvm”)可以同时运行 Virtualbox 和安卓模拟器,但是安卓模拟器在这种情况下的性能非常糟糕。如果可能的话,最好通过运行“ sudo/etc/init.d/vboxdrv stop”关闭 Virtualbox 模拟器并卸载其驱动程序(vboxdrv)。在关于 Linux 的部分,Google 在它的 Android 模拟器页面上提出了这个“解决方案”。

您还可以在模拟器设置中将 CPT/ABI 设置从 x86更改为 arm。

我停止了使用 VirtualBox 运行的虚拟机,这使得错误消失了。

我也有同样的虚拟机冲突。 Solved it by using ABI different from "x86" (armeabi-v7a in my case)

我最终使用 Genymotion 而不是标准的 Android 模拟器来解决这个问题。除了没有这种冲突之外,它还比普通模拟器快几倍。

虽然这也是一个变通方案,但绝对比禁用 KVM 要好,就像大家建议的那样。

只要在 KVM 中运行虚拟机客户端就可以了,例如 (这里的 ABC0只是一个运行 qemu-system-x86_64 -enable-kvm的脚本):

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

我通过安装 HAXM 6.1.2解决了这个问题。

详情请参阅以下连结:-https://forums.docker.com/t/cant-using-docker-for-mac-with-android-emulator-haxm/8939/11

终于有解决办法了。

对于 MacOS,遵循以下步骤:

  1. 在 Android Studio 中,转到 Tools-> Android-> SDK Manager

  2. 确认您已经安装了 Intel 仿真器加速器 HAXM 的最新版本(v6.1.1) < img src = “ https://i.stack.imgur.com/qHTPC.png”alt = “ Preferences panel in Android Studio”/> < img src = “ https://i.stack.imgur.com/qHTPC.png”alt = “ Android Studio 中的首选项面板”/>

  3. 转到首选项中显示的 Android SDK 位置的 extras目录:

    open ~/Library/Android/sdk/extras

  4. 通过打开 IntelHAXM _ 6.1.1. dmg,然后在挂载的文件夹中打开 IntelHAXM _ 6.1.1. mpkg,并按照安装说明安装 HAXM 包。

Follow these steps for 窗户:

  1. 在 Android Studio 中,转到 Tools-> Android-> SDK Manager

  2. 确认您已经安装了 Intel 仿真器加速器 HAXM 的最新版本(v6.1.1) < img src = “ https://i.stack.imgur.com/qHTPC.png”alt = “ Preferences panel in Android Studio”/> < img src = “ https://i.stack.imgur.com/qHTPC.png”alt = “ Android Studio 中的首选项面板”/>

  3. Go to the extras directory of the Android SDK location displayed in the preferences. Something like:

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

  4. 在那个目录中有某种类型的文件,比如 intelhaxm-android.exe。运行它。

在某些情况下,我们需要让虚拟机保持运行,因此让所有的虚拟机保持运行,切换到物理移动设备来测试您的应用程序,而不是模拟器。

你可以使用 expo,如果你使用的是本地的或者你真正的 android/ios 设备。

另一个解决方案是使用使用 流浪汉插件的 libvirt 支持的流浪者。

由于 OP 在同一时间请求 VirtualBox + KVM,这可能有点跑题,但它仍然可能是解决方案: 我一直在寻找在 Ubuntu 18.10 x64上启动 Windows 7和 AVD 的方法。关闭 KVM 不是一个选项,因为 AVD 的性能对我来说至关重要。我已经通过虚拟机管理器(virt-Manager 软件包)安装了 Windows 7,现在 AVD 和 Windows 7都是硬件加速的。

Here is how solved this issue, using vagrant and it's two plugins 'libvirt' and 'mutate':

  1. 打开终端并设置环境变量:

     export VAGRANT_DEFAULT_PROVIDER=libvirt
    export VAGRANT_HOME=/home/directoryToStoreVagrant/
    VBoxManage list vms
    
  2. Now copy the a the code obtained from last command like "c1530713-aec2-4415-a6b5-b057928c7e5f" and use in the following:

    vagrant package --base c1530713-aec2-4415-a6b5-b057928c7e5f --output window7.box

     vagrant init window7
    vagrant up window7 --provider=libvirt
    vagrant box list
    
  3. You need to install some vagrant plugins like libvirt and mutate. Mutate will convert .box to libvirt VM:

    vagrant plugin install vagrant-libvirt vagrant plugin install vagrant-mutate

  4. Converting vagrant box to libvirt:

    vagrant mutate window7_.box libvirt

  5. Now you can initialise the vagrant VM. If any error persist move to edit your Vagrant file. Like for me I uncomment the line starts with config.vm.network and then run command below:

    vagrant up --provider=libvirt

This is how I was able get rid of this error completely

对于那些在 Linux 上开发并且被大量运行在 Virtual box 中的后端系统所困扰的人来说,一个简单的解决方案就是创建一个 Virtual box X86 Android VM,并在 NAT 接口上公开从本地主机通过 PAT 隧道传输的5555端口。 不需要慢臂 AVD,不需要 libvirt/流浪者,更不用说杀死 kvm!

enter image description here

那就告诉亚洲开发银行

$ 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

然后,按下 run 或 debug,在 Android Studio 中将在该 VM 上部署和执行。 您可以在 Android Studio 调试器下完全控制。