Android emulator and virtualbox cannot run at same time

Android EmulatorVirtualboxKvm

Android Emulator Problem Overview


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.

Android Emulator Solutions


Solution 1 - Android Emulator

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.

Solution 2 - Android Emulator

I got the same VirtualBox conflict. Solved it by using ABI different from "x86" (armeabi-v7a in my case)

Solution 3 - Android Emulator

I stopped the virtual machines I had running with VirtualBox. This made the error disappear.

Solution 4 - Android Emulator

I had the same problem on Ubuntu 13.10. Try to remove kvm and kvm_intel kernel modules.

To do this:

  1. Stop all emulators.
  2. 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.

Solution 5 - Android Emulator

There is finally a fix for this.

Follow these steps for macOS:

  1. In Android Studio Go to Tools -> Android -> SDK Manager

  2. Confirm you have the latest version of Intel Emulator Accelerator HAXM installed (v6.1.1) Preferences panel in Android Studio.

  3. 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

  4. 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:

  1. In Android Studio Go to Tools -> Android -> SDK Manager

  2. Confirm you have the latest version of Intel Emulator Accelerator HAXM installed (v6.1.1) Preferences panel in 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. In that directory is some kind of file like intelhaxm-android.exe. Run it.

Solution 6 - Android Emulator

You also can change CPT/ABI setting from x86 to arm in emulator settings.

Solution 7 - Android Emulator

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.

Solution 8 - Android Emulator

Another solution is to use libvirt backed vagrant using vagrant-libvirt plugin.

Solution 9 - Android Emulator

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

Solution 10 - Android Emulator

For those who are developing on Linux and are stuck with a host of back-end systems running inside virtualbox, a simple solution is simply to create a virtualbox X86 Android VM and expose the 5555 port on the NAT interface tunnelled from localhost through PAT. No need for slow arm AVD, no need for libvirt/vagrant let alone killing kvm!

enter image description here

Then let adb know about it

$ 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

Then, pressing run or debug, in Android Studio will deploy and execute on that VM. You have complete control under Android Studio debugger.

Solution 11 - Android Emulator

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.

Solution 12 - Android Emulator

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

Solution 13 - Android Emulator

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.

Solution 14 - Android Emulator

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

  1. Open terminal and set environment variables:

     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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBananeweizenView Question on Stackoverflow
Solution 1 - Android EmulatortraberView Answer on Stackoverflow
Solution 2 - Android EmulatorStanislav MakarenkoView Answer on Stackoverflow
Solution 3 - Android EmulatorOle TangeView Answer on Stackoverflow
Solution 4 - Android EmulatorAlexander ZhukovView Answer on Stackoverflow
Solution 5 - Android EmulatorplowmanView Answer on Stackoverflow
Solution 6 - Android Emulator0x8BADF00DView Answer on Stackoverflow
Solution 7 - Android EmulatorBananeweizenView Answer on Stackoverflow
Solution 8 - Android EmulatorDHHView Answer on Stackoverflow
Solution 9 - Android EmulatorHi-AngelView Answer on Stackoverflow
Solution 10 - Android EmulatorAlain PannetierView Answer on Stackoverflow
Solution 11 - Android EmulatorAshwin JView Answer on Stackoverflow
Solution 12 - Android EmulatorRohit AgarwalView Answer on Stackoverflow
Solution 13 - Android EmulatorvocasleView Answer on Stackoverflow
Solution 14 - Android Emulatormuhammad tayyabView Answer on Stackoverflow