패닉 : 깨진 AVD 시스템 경로. ANDROID_SDK_ROOT 값을 확인하십시오 다음을 얻었습니다. Waiting for emulator to

cordova run android터미널에 입력 한 후이 오류가 발생합니다.

Waiting for emulator to start...
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/Users/username/Library/Android/sdk]!

이것은 내보내기 후에 발생합니다.

export ANDROID_SDK_ROOT='/Users/username/Library/Android/sdk'

내보내기 전에 다음을 얻었습니다.

Waiting for emulator to start...
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT

내가 잘못 가고있는 아이디어가 있습니까? 나는 이것이 sdk 루트라고 확신하므로 왜 avd 시스템 경로가 깨져 있습니까?



답변

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에 파일 트리가 잘못되었을 수 있습니다. 다음을 수행하십시오.

  1. 있는지 확인 SDK 디렉토리가 적어도이 4 개의 디렉토리를 가지고 : emulator, platforms, platform-tools, system-images. 매우 중요합니다! 이 디렉토리가 있어야합니다. 그들 중 일부가 존재하지 않으면 빈 디렉토리를 만드십시오.

  2. 로 이동하여 <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: ‘ ‘을 열 수 없습니다 : 잘못된 인수

이를 해결하는 두 가지 방법이 있습니다.

  1. AVD에 포함 된 데이터에 신경 쓰지 않으면 qcow2AVD 디렉토리에서 모든 파일을 삭제하십시오 (예 :에서 <user_home>/.android/avd/<avd_name>). 이 경우 하드 리셋 후와 같이 깨끗한 버전의 Android가 제공됩니다.

  2. 에뮬레이터의 데이터가 중요한 qcow2경우 HEX 편집기 ( HxD 선호 )를 사용하여 모든 파일을 하나씩 열고 기본 img파일 의 경로를 찾은 다음 Overwrite모드 에서 올바른 파일로 변경하십시오 ( 파일 크기). 그런 다음 경로를 선택하고 16 진수 길이를 가져옵니다 (예 🙂 2F. 2FASCII 슬래시를 나타냅니다 /. 그것을 제자리에 넣으십시오 13:

HxD HEX 편집기를 사용하여 Android qcow2 파일 편집

추신 : 확실하지는 않지만 qemu-img 와 같은 다른 유틸리티가있을 수 있습니다. 글쎄, 나에게 바이너리를 수동으로 편집하는 것이 더 쉽다.


이제 Android 가상 장치를 성공적으로 시작할 수 있습니다. 나는 희망한다 🙂


답변

Mac : Android Studio를 android-sdk사용하여 설치했습니다 brew. 어떻게해서 2 번 설치하면이 문제가 발생했습니다. sdk를 사용하여 brew 설치를 제거 brew cask uninstall android-sdk하고 다음 변수를 env에 추가 했을 때 . 효과가있었습니다.

export ANDROID_HOME=/Users/<Username>/Library/Android/sdk
export ANDROID_SDK_ROOT=$ANDROID_HOME


답변

macOS에서 문제가 해결됩니다.

pico ~/.bash_profile

export ANDROID_HOME=/Users/$USER/Library/Android/sdk
export ANDROID_SDK_HOME=/Users/$USER/Library/Android/sdk
export ANDROID_AVD_HOME=/Users/$USER/.android/avd
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_AVD_HOME

source ~/.bash_profile


답변

Homebrew의 Android SDK를 기본 SDK로 사용하는 동안 오류 제거

@ EFreak처럼 homebrew (Mac 용 패키지 관리자)와 함께 android-sdk를 설치했습니다. 네이티브 스크립트 자습서를 따르고 오류가 발생하여 오류를 해결하기 위해 아래 작업을 수행해야했습니다. android-sdk 버전보다 brew 버전을 사용하려면이 답변을 사용하십시오 (원본 스크립트 tns run androidAPI 를 사용할 수 있음 ) .Android 스튜디오 기본 android-sdk를 원한다면 @EFreak의 답변을 따르십시오.

Homebrew의 Android SDK를 사용하도록 Android Studio 구성

기본적으로 Android 스튜디오에서 Android SDK 위치를 변경하면됩니다. 먼저 android studio에서 프로젝트를 엽니 다. 그런 다음이 버튼을 클릭하여 SDK 관리자를 엽니 다.

안드로이드 SDK 관리자 버튼 위치

다음으로 Android SDK 관리자의 기본 환경 설정이 나타나면 Android SDK 위치 옆의 편집을 클릭해야합니다.

여기에 이미지 설명을 입력하십시오

Homebrew의 Android SDK 위치 찾기

다음으로 실제로 내 brewandroid-sdk가 있는 SDK 구성 요소 설정 화면에서 SDK 위치를 업데이트해야합니다 /usr/local/share/android-sdk. brew cask info android-sdk다음과 같이 출력 하단 근처에서 실행하여 설치 위치를 찾을 수 있습니다 .

You can control android sdk packages via the sdkmanager command.
You may want to add to your profile:

  'export ANDROID_SDK_ROOT="/usr/local/share/android-sdk"'

exported ANDROID_SDK_ROOT변수 의 값 (여기서는 /usr/local/share/android-sdk)은 홈 SDK의 Android SDK 위치입니다.

그런 다음 Android SDK 위치 단추 (그림에서 1로 표시됨)를 클릭하고 Homebrew의 Android SDK 위치에 붙여 넣어야합니다.

여기에 이미지 설명을 입력하십시오

그런 다음 패키지를 설치하여 마법사를 완료하십시오. 이 단계에서 장치 에뮬레이터를 삭제하고 다시 만들어야했지만 그 후에는 잘 작동하는 것 같습니다.

Homebrew의 Android SDK를 가리 키도록 Android SDK 환경 변수 설정

또한 프로파일 설정 스크립트에 ANDROID_HOMEand ANDROID_SDK_ROOTsdk가 android sdk의 Homebrew 위치로 설정되어 있으며 Homebrew 경로로 가고 있는지 확인하려는 경우 위의 작업이 아직 작동하지 않습니다. 당신이 뾰족한 밖으로 안드로이드 스튜디오를 설치하기 전에 브루를 설치 한 경우는 브루 위치 변경 얻을 수있는 이 답변에 의한 @Jamie 갑옷 . 당신은 안드로이드 SDK에 대한 환경 변수를 실행하여 올바르게 설정되었는지 확인할 수 있습니다 echo $ANDROID_HOME그리고 echo $ANDROID_SDK_ROOT그들은 모두 안드로이드 SDK의 브루 위치를 표시되는지 확인.

ANDROID_HOME 및 ANDROID_SDK_ROOT 값을 변경해야하는 경우 Mac의 프로필 설정에서 ~/.bash_profile“~ / .bashrc”또는 “~ / .profile”과 같은 형식으로 다음과 같이 정의 할 수 있습니다.

export ANDROID_HOME="/usr/local/share/android-sdk"
export ANDROID_SDK_ROOT="/usr/local/share/android-sdk"

두 내보내기의 값을 Homebrew의 Android SDK 위치의 올바른 값으로 변경 한 다음 파일을 저장해야합니다. 올바른 값이 기록되었는지 확인하려면 먼저 파일을 다시 실행하고 환경 변수를 재설정해야하는 터미널을 닫고 열어야합니다. 또는 source <profile file name>편집 및 저장 한 프로파일 파일이있는 위치 를 실행하여 파일을 소싱 할 수 있습니다 . 그런 다음 다시 실행할 수 echo $ANDROID_HOMEecho $ANDROID_SDK_ROOT그들이 브루 안드로이드 SDK의 위치를 가지고 있는지 확인합니다.


답변

공구 경로가 잘못되었음을 의미합니다. 이것은 brew를 사용하는 Mac에서 보이는 모습입니다. 버전을 확인하십시오.

export ANDROID_SDK_ROOT='/usr/local/Cellar/android-sdk/24.4.1_1'

귀하의 경우 다음을 실행해야합니다.

export ANDROID_SDK_ROOT='/Users/username/Library/Android/sdk'


답변

Windows10에서 동일한 문제가
발생했습니다. 아래 단계에 따라 문제를 해결했습니다.
Android Studio 열기
-도구
-SDK 관리자
-Android SDK 위치 복사
Android SDK 위치
설정 시스템 환경 변수
ANDROID_HOME 및 ANDROID_SDK_ROOT
시스템 환경 변수


답변

에뮬레이터 업데이트 후 동일한 문제가 발생했습니다. ANDROID_AVD_HOME 변수를 추가 한 후 문제가 해결되었습니다. 여기에 이미지 설명을 입력하십시오

중요 사항 : ASCII가 아닌 문자는 경로에서 사용할 수 없습니다. 마지막으로 ASCII 이외의 문자가 포함 된 이전 경로가 포함 된 Configuration settings.ini 파일에서 가상 장치를 다시 설치하거나 장치 경로를 수동으로 재정의하십시오.

C:\Users\<user_name>\.android\avd\<avd_name>