Virtualbox를 실행할 때마다 Android 에뮬레이터 이미지를 시작할 수 없으며 그 반대도 마찬가지입니다. AVD 관리자의 오류 메시지는 다음과 같습니다.
ioctl(KVM_CREATE_VM) failed: Device or resource busy
ko:failed to initialize KVM
두 가지를 동시에 실행하려면 어떻게해야합니까?
이는 Ubuntu 64 비트이며 모든 관련 소프트웨어는 최신 릴리스 버전입니다.
Virtualbox를 실행할 때마다 Android 에뮬레이터 이미지를 시작할 수 없으며 그 반대도 마찬가지입니다. AVD 관리자의 오류 메시지는 다음과 같습니다.
ioctl(KVM_CREATE_VM) failed: Device or resource busy
ko:failed to initialize KVM
두 가지를 동시에 실행하려면 어떻게해야합니까?
이는 Ubuntu 64 비트이며 모든 관련 소프트웨어는 최신 릴리스 버전입니다.
답변:
kvm 커널 모듈을 제거하면 ( 'sudo rmmod kvm_intel kvm'사용) Virtualbox와 Android 에뮬레이터를 동시에 실행할 수 있지만 이러한 설정에서 Android 에뮬레이터의 성능이 매우 나쁩니다. 가능하면 'sudo /etc/init.d/vboxdrv stop'을 실행하여 Virtualbox 에뮬레이터를 종료하고 드라이버 (vboxdrv)를 언로드하는 것이 좋습니다. Google은 Linux 관련 섹션 의 Android Emulator 페이지 에서이 "솔루션"을 제안합니다 .
동일한 VirtualBox 충돌이 발생했습니다. "x86"(제 경우에는 armeabi-v7a)과 다른 ABI를 사용하여 해결했습니다.
VirtualBox로 실행하던 가상 머신을 중지했습니다. 이로 인해 오류가 사라졌습니다.
killall virtualbox
해야합니다.
docker-machine stop machine-name
이 asnwer에 제안하여 문제 해결
Ubuntu 13.10에서 동일한 문제가 발생했습니다. kvm 및 kvm_intel 커널 모듈을 제거하십시오.
이것을하기 위해:
이러한 커널 모듈이 없으면 Virtualbox와 Android 에뮬레이터가 동시에 작동 할 수 있습니다.
BTW, 모듈이로드 된 이유를 모르겠습니다.
마침내 이것에 대한 수정이 있습니다.
macOS의 경우 다음 단계를 따르십시오 .
Android Studio에서 도구-> Android-> SDK 관리자로 이동합니다.
extras
환경 설정에 표시된 Android SDK 위치 의 디렉토리로 이동하십시오 . MacOS에서는 다음을 수행 할 수 있습니다.
open ~/Library/Android/sdk/extras
IntelHAXM_6.1.1.dmg를 연 다음 탑재 된 폴더에서 IntelHAXM_6.1.1.mpkg를 열고 설치 지침에 따라 HAXM 패킹을 설치합니다.
Windows의 경우 다음 단계를 따르십시오 .
에뮬레이터 설정에서 CPT / ABI 설정을 x86에서 arm으로 변경할 수도 있습니다.
마침내 표준 Android 에뮬레이터 대신 Genymotion을 사용하여이 문제를 쓸모 없게 만들었습니다. 이 충돌이없는 것 외에도 일반 에뮬레이터보다 몇 배 더 빠릅니다.
또 다른 해결책은 vagrant-libvirt 플러그인을 사용하여 libvirt 지원 vagrant를 사용 하는 것 입니다.
해결 방법이지만 모든 사람이 제안한 것처럼 KVM을 비활성화하는 것보다 확실히 낫습니다.
대신 KVM에서 virtualbox 게스트를 실행하십시오. 예를 들어 ( kvm
여기를 실행하는 스크립트가 있습니다 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
어떤 경우에는 virtualbox 머신을 계속 실행해야하므로 모든 virtualbox 머신이 계속 실행되도록하고 에뮬레이터 대신 애플리케이션을 테스트하기 위해 물리적 모바일 장치로 전환해야합니다.
react-native 또는 실제 Android / ios 기기로 작업하는 경우 expo를 사용할 수 있습니다.
다음은 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 와 같은 일부 방랑 플러그인을 설치해야합니다 . 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
이것이 제가이 오류를 완전히 없앨 수 있었던 방법입니다.