AVD 또는 SDK를 다른 디렉토리로 이동하거나 이전 SDK를 새 디렉토리로 바꾸거나 SDK가 손상 될 때 몇 가지 다른 문제가있을 수 있습니다.
아래에서는 내가 아는 모든 가능한 문제에 대해 설명하고 여러 가지 방법으로 문제를 해결합니다.
물론 AVD가 만들어져 있고 C:\Users\<user_name>\.android\avd
(Windows) 또는 ~/.android/avd
(Linux / MacOS)에 있다고 가정합니다 .
.android
다른 장소 로 이동 한 경우 ANDROID_SDK_HOME
환경 변수를 포함하는 상위 디렉토리의 경로로 환경 변수를 설정 .android
하고 AVD Manager가 가상 장치를 성공적으로 찾 도록하십시오 .
경로도 확인하십시오 <user_home>/.android/avd/<avd_name>.ini
불완전하거나 손상된 SDK 구조
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value
에뮬레이터에서 SDK를 찾을 수 없거나 SDK가 손상된 경우이 2 개의 오류가 발생합니다.
따라서 먼저 ANDROID_SDK_ROOT
변수 를 제거하는 것이 좋습니다 . 에뮬레이터가 SDK 디렉토리 외부에있는 경우에만 필요합니다. 그러나 일반적으로 에뮬레이터는 SDK 디렉토리 안에 있습니다. 이 경우 SDK 위치를 자동으로 감지해야합니다 . 그렇지 않은 경우 SDK에 파일 트리가 잘못되었을 수 있습니다. 다음을 수행하십시오.
있는지 확인 SDK 디렉토리가 적어도이 4 개의 디렉토리를 가지고 : emulator
, platforms
, platform-tools
, system-images
. 매우 중요합니다! 이 디렉토리가 있어야합니다. 그들 중 일부가 존재하지 않으면 빈 디렉토리를 만드십시오.
로 이동하여 <user_home>/.android/avd/<avd_name>
엽니 다 config.ini
. image.sysdir.1
속성을 찾으십시오 . 실제 시스템 이미지가 들어있는 SDK 디렉토리 내부의 디렉토리를 가리 킵니다. 이 디렉토리가 존재하고 같은 파일이 들어 있는지 확인 build.prop
, system.img
등 그렇지 않은 경우에, 당신은 열 필요가 SDK 관리자 와 AVD가 필요로 다운로드 시스템 이미지 (아래 참조).
모든 것이 올바르게 설정되면 이러한 오류 ANDROID_SDK_ROOT
가 사라져야합니다. 그렇지 않은 경우 ANDROID_SDK_ROOT
변수 를 설정하려고 할 수 있습니다 .
필수 패키지 및 HAXM이 설치되지 않았습니다
다음에 직면 할 수있는 문제는 에뮬레이터가 시작되기 시작하지만 즉시 중단되거나 종료된다는 것입니다. 이는 필요한 패키지가 모두 설치되지 않았 음을 의미합니다.
또 다른 가능한 오류는 다음과 같습니다.
ADB 바이너리를 자동으로 감지 할 수 없습니다. 확장 설정 페이지에 ADB에 대한 사용자 정의 경로가 추가 될 때까지 일부 에뮬레이터 기능이 작동하지 않습니다.
따라서 AVD를 성공적으로 시작하려면 최소한 다음 패키지가 설치되어 있어야합니다.
emulator (Android Emulator)
platform-tools (Android SDK Platform-Tools)
tools (Android SDK Tools)
앞에서 언급했듯이 예를 들어 AVD가 사용하는 시스템 이미지를 설치해야합니다. system-images;android-25;google_apis;x86
SDK의 최신 버전에는 독립형이 없습니다 SDK Manager.exe
. 그 대신 Android Studio를 사용하거나 tools\bin\sdkmanager.bat
(Linux / MacOS에 sh
파일 이있을 수 있음) 사용해야 합니다.
사용 가능한 모든 패키지를 나열하려면 sdkmanager --list
또는sdkmanager --list --verbose
패키지를 설치하려면 sdkmanager <package1> <package2> ...
또한 시스템에 HAXM 을 수동으로 설치하는 것이 좋습니다 .
Qcow2- 파일은 잘못되었거나 존재하지 않는 기본 이미지를 나타냅니다
마지막으로 언급 할 문제는 AVD 또는 SDK를 한 컴퓨터 나 디렉토리에서 다른 컴퓨터 나 디렉토리로 이동하려고 할 때 발생합니다. 이 경우 다음과 같은 오류가 발생할 수 있습니다.
qemu-system-i386.exe :-드라이브 if = 없음, 중복 검사 = 없음, 캐시 = 안전하지 않음, index = 0, id = system, file = C:\Users\<old_user_name>\.android\avd\<avd_name>
.
avd \ system.img.qcow2, 읽기 전용 : 백업 파일을 열 수 없습니다 <old_sdk_dir>\system-images\android-22\google_apis\x86\system.img
: ' '을 열 수 없습니다 : 잘못된 인수
이를 해결하는 두 가지 방법이 있습니다.
AVD에 포함 된 데이터에 신경 쓰지 않으면 qcow2
AVD 디렉토리에서 모든 파일을 삭제하십시오 (예 :에서 <user_home>/.android/avd/<avd_name>
). 이 경우 하드 리셋 후와 같이 깨끗한 버전의 Android가 제공됩니다.
에뮬레이터의 데이터가 중요한 qcow2
경우 HEX 편집기 ( HxD 선호 )를 사용하여 모든 파일을 하나씩 열고 기본 img
파일 의 경로를 찾은 다음 Overwrite
모드 에서 올바른 파일로 변경하십시오 ( 파일 크기). 그런 다음 경로를 선택하고 16 진수 길이를 가져옵니다 (예 :) 2F
. 2F
ASCII 슬래시를 나타냅니다 /
. 그것을 제자리에 넣으십시오 13
:
추신 : 확실하지는 않지만 qemu-img 와 같은 다른 유틸리티가있을 수 있습니다. 글쎄, 나에게 바이너리를 수동으로 편집하는 것이 더 쉽다.
이제 Android 가상 장치를 성공적으로 시작할 수 있습니다. 나는 희망한다 :)