Android Studio에서 에뮬레이터를 실행할 수 없습니다.


96

Android 스튜디오를 설치하고 테스트 실행을 시도했습니다. 앱을 실행하려고하면 다음과 같은 오류 메시지가 나타납니다.

emulator: ERROR: This AVD's configuration is missing a kernel file!!
emulator: ERROR: ANDROID_SDK_ROOT is undefined

아무도 이것을 고치는 방법을 알고 있습니까 ????


1
이 답변을 확인하십시오. stackoverflow.com/questions/9712605/…
Psypher

@Ted Pottel, 아래 답변 중 귀하의 질문에 대한 답변이 있습니까? 그렇다면 옆에있는 확인 표시를 클릭하십시오.
Harris

답변:


27

실제로 시스템 이미지가 없을 수 있습니다. $ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a존재하고 비어 있지 않은지 다시 확인하십시오 . 실제로 누락 된 경우-SDK 관리자로 설치 / 재설치하십시오.


2
1 : 나는 두 가지 문제를 가지고 내가 찾을 수없는 $ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a, 2 : SDK 관리자를 사용하여 가상 장치를 다시 설치하는 방법
무사 하이 다리

그러나 답변을 읽고, 내가 해결을 할 수있는, 그 새로운 가상 장치를 만들 수 있었고 문제는 새로운 발생하지 않았다
무사 하이 다리

4
SDK 관리자 내에서 "Show Package Details"를 확인하여 어떤 시스템 이미지가 설치되었는지 확인하고 그렇지 않은 경우 설치하십시오
Martyn Davis

21

도구로 이동 | 안드로이드 | AVD 관리자

오른쪽 끝에있는 작업 열 아래의 화살표를 클릭합니다 (오류 메시지가있는 위치).

편집 선택

기본 선택 유지 (나의 경우 MNC x86 Android M)

다음을 클릭하십시오.

마침 클릭

AVD를 저장하고 이제 마지막 열에서 오류가 사라졌습니다. 이제 에뮬레이터가 제대로 작동합니다.


15

이 문제를 해결했습니다. 이것이 다른 사람들에게 도움이되기를 바랍니다. (Android 스튜디오 v2에서와 같은 문제)이 문제는 arm 에뮬레이터에 적용됩니다. 이 예에서는 armeabi-v7a API 16을 사용하고 있습니다.

수정은 세 단계입니다.

1 단계 : SDK 관리자를 열고 ARM EABI v7a 시스템 이미지를 설치했는지 확인합니다.

2 단계. 이것은 시스템 변수에 sdk의 위치를 ​​추가하는 명백한 경우입니다.

바탕 화면에서 "이 PC"아이콘을 마우스 오른쪽 버튼으로 클릭 한 다음

Properties -> Advanced system settings -> Environment Variables... 그런 다음 변수 이름을 사용하여 sdk의 경로를 시스템 변수 섹션에 새로 추가하십시오. ANDROID_SDK_ROOT .

3 단계. 변경 사항을 등록하려면 Android Studio를 다시 시작합니다. ANDROID_SDK_ROOTis undefined 문제를 수정 한 후에도 에뮬레이터는 sdk 관리자가 커널 파일을 설치했음을 알 수 있지만 여전히 커널 파일을 찾을 수 없습니다.

path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu

그 이유는 sdk 관리자가 커널 파일을 설치하는 위치와 에뮬레이터가 찾는 위치가 섞여 있기 때문입니다.

에뮬레이터에 대한 config.ini (Android Studio-> AVD Mananger-> "Show On Disk")를 열면 다음 줄이 표시됩니다.

image.sysdir.1=add-ons\addon-google_apis-google-16\images\armeabi-v7a\

(예 : \ path-to-sdk \ add-ons \ addon -....)

복사 한 config.ini 파일에서이 값을 변경하는 대신

path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu

(설치된 sdk 관리자 폴더의 커널 파일)

\path-to-sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a\

그리고 그것은 누락 된 커널 파일이었습니다. 에뮬레이터를 실행할 수 있습니다. (Android Studio를 닫았다가 다시 열어야합니다.) x86에 비해 10 배 더 느리므로 에뮬레이터를 잠시 기다리십시오. (내가 시작하는 데 약 5 분이 걸렸습니다)


어, '에뮬레이터 용 config.ini'는 어디에 있습니까?
Jay

Android Studio-> AVD Mananger-> "디스크에 표시". 답변 편집.
Asi Mugrabi

이 실제로 내 경우에, 나를 위해 트릭을했던 대답이 내 편집 된 라인했다 :image.sysdir.1=system-images\android-16\default\armeabi-v7a
yvesmancera

이것은 Nexus 4 에뮬레이터의 트릭이었습니다. image.sysdir.1`system-images \ android-15 \ google_apis \ armeabi-v7a` 로 업데이트 해야 함
나뭇 가지

10

"C : \ Program Files \ Android \ android-sdk \ AVD Manager.exe"를 실행하고 고장난 장치를 수리하여 문제를 해결했습니다.


5

짧은 대답 : 구식을 사용하여 같은 이미지를 만들어보십시오.<AndroidSDK>\AVD Manager.exe .

Android Studio에서 모든 통합 도구를 실행하면서 이전 관리자 (AVD / SDK)를 사용하지 않는 것이 당연해졌습니다.

필자의 경우 새 (통합) AVD Manager를 사용하여 이전 시스템 이미지 (테스트 한대로 API 11 이하)로 장치를 만들 때이 문제가 발생했습니다.

구식 AVD 관리자 도구 (에 있음 <AndroidSDK>\AVD Manager.exe)를 사용하여이 구식 장치 이미지를 만들 려고했을 때 성공했습니다.


2
제안 해 주셔서 감사합니다. 독립 실행 형 도구가 이전 플랫폼에 맞게 설정하는 방법을 알고있는 것 같습니다. OS X / macOS : ~/Library/Android/sdk/tools/android avd.
neuralmer

4

방금 당신이했던 것과 같은 문제가 발생했습니다. Google의 세 번째 링크가 오류를 발생시키는이 코드를 가져 왔습니다.

if (kernelFile == NULL) {
        kernelFile = avdInfo_getKernelPath(avd);
        if (kernelFile == NULL) {
            derror( "This AVD's configuration is missing a kernel file!!" );
            const char* sdkRootDir = getenv("ANDROID_SDK_ROOT");
            if (sdkRootDir) {
                derror( "ANDROID_SDK_ROOT is defined (%s) but cannot find kernel file in "
                        "%s" PATH_SEP "system-images" PATH_SEP
                        " sub directories", sdkRootDir, sdkRootDir);
            } else {
                derror( "ANDROID_SDK_ROOT is undefined");
            }
            exit(2);

그 사람이 쓴 :

"/ * 커널 이미지 이름이"-armv7 "로 끝나는 경우 cpu * 유형을 자동으로 변경합니다. 이것은 구성 관리에 대한 가난한 사람의 접근 방식이지만 dex preopt pass로 ARMv7 * 시스템 이미지를 빌드하는 것을 지나칠 수 있어야합니다. "

그래서 다시 들어가서 원하는 API 레벨에 맞는 x86 인텔 아톰 버전을 다운로드했고 오류없이 에뮬레이터를 시작할 수있었습니다. 도움이되기를 바랍니다 .....


2

일반적으로 개발중인 앱 유형에 적합하지 않은 AVD 에뮬레이터로 인해 오류가 발생합니다. 예를 들어 웨어러블 용 앱을 개발하고 있지만이를 실행하기 위해 전화 에뮬레이터를 사용하려는 경우입니다.


2

나는 같은 오류가 있었다. 나를위한 해결책은 ANDROID_HOME 경로를 변경하는 것이 었습니다 . 먼저 tools-> android-> sdk 관리자를 살펴 보았습니다. Android Studio에서 를 . 이 창에서 Android Studio가 SDK를 찾는 경로를 볼 수 있습니다. image

그런 다음 Windows CMD 셸을 열고 다음을 실행했습니다.

echo %ANDROID_HOME%

그러나 경로는 첫 번째 단계의 ANDROID STUDIO CONFIGURATION의 경로와 다릅니다.

해결책은 사용자 환경 인 ANDROID_HOME을 첫 번째 단계 중 하나로 변경하는 것이 었습니다. 이미지

마침내 cmd 셸을 닫고 다른 cmd 셸을 열어 실행합니다.

echo %ANDROID_HOME%

경로가 업데이트되었고 에뮬레이터를 완벽하게 실행할 수있었습니다.


1

내 경우 (Windows 10) 그 이유는 Android sdk를 기본 폴더가 아닌 폴더에 감히 압축 해제했기 때문입니다. 기본 c : / Users / [username] / AppData / Local / Android / Sdk로 이동하고 Android Studio 및 시스템 변수의 경로를 변경하면 작동하기 시작했습니다.


1
  • Android 스튜디오를 엽니 다.
  • 설정> 시스템 설정> Android SDK로 이동합니다.
  • "Android SDK 위치"를 가져옵니다.
  • 환경 변수 ANDROID_SDK_ROOT를이 값으로 설정하십시오.

그것은 나를 위해 일했으며 Windows 10 및 Android studio 2.3.3에 있습니다.


1
  1. "시스템 환경 변수 편집"으로 이동합니다.
  2. 새 버튼을 클릭하고 변수 이름에 "ANDROID_SDK_ROOT"를 입력하고 변수 값에 android sdk 전체 경로를 입력합니다. 확인을 클릭하고 닫습니다.
  3. AVD를 새로 고칩니다.
  4. 이렇게하면 오류가 해결됩니다.

-1

이 문제를 해결하기 위해 따라야 할 일반적인 접근 방식입니다.

1. Android 스튜디오에서 실행하여 SDK 관리자를 확인하고 ./android.sh깨진 패키지를 찾는 데 도움이 되는 실행하여 alons sdk 폴더를 서십시오.

  1. Intel보다 Google API를 지원하는 시스템 에뮬레이터 이미지를 설치해보십시오. 와 마찬가지로 다른 시스템 이미지로 실행하여 문제를 해결했습니다.

  2. Linux 용 Google에서 제안한 KVM 기반 가상화에 대한 실험

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.