Android Emulator의 알려진 문제 해결

이 페이지에는 Android Emulator의 알려진 문제, 해결 방법 및 문제 해결 팁이 나와 있습니다. 여기 나열되지 않은 문제가 발생하거나 여기 나열된 해결 방법을 사용할 수 없으면 버그를 신고하세요.

적절한 디스크 공간 확인

여유 디스크 공간 부족으로 인한 비정상 종료 및 중단을 방지하기 위해 에뮬레이터는 시작 시 여유 디스크 공간이 충분한지 확인하고 최소 2GB를 사용할 수 없으면 시작되지 않습니다. 에뮬레이터가 시작되지 않으면 여유 디스크 공간이 충분한지 확인하세요.

바이러스 백신 소프트웨어

대부분의 보안 및 바이러스 백신 소프트웨어 패키지가 모든 읽기 및 쓰기 작업을 모니터링하는 방식으로 작동하므로 이러한 소프트웨어를 사용할 경우 Android Emulator와 같은 도구의 성능이 저하될 수 있습니다.

많은 바이러스 백신 패키지에서 특정 애플리케이션을 신뢰할 수 있는 애플리케이션 목록에 추가하여 이러한 애플리케이션이 성능 저하 없이 작동할 수 있도록 하는 기능을 제공합니다. AVD 스냅샷을 저장하거나 로드할 때 성능이 저하되는 경우 Android Emulator 애플리케이션을 바이러스 백신 소프트웨어의 신뢰할 수 있는 애플리케이션으로 추가하여 성능을 높일 수 있습니다.

바이러스 백신 소프트웨어 패키지마다 성능에 미치는 영향이 다릅니다. 운영체제에 포함된 것 외에 추가로 설치된 바이러스 백신 소프트웨어가 있는 경우 간단한 테스트를 실행하여 어느 바이러스 백신 소프트웨어가 Android Emulator 로드 및 저장 작업 시 성능에 더 큰 영향을 미치는지 확인할 수 있습니다.

일부 바이러스 백신 소프트웨어는 Android Emulator와 호환되지 않을 수도 있습니다.

Avast 소프트웨어를 사용 중이고 Android Emulator를 실행하는 데 문제가 있는 경우 Avast Troubleshooting(문제 해결) 설정에서 Use nested virtualization when available(사용 가능한 경우 포함된 가상화 사용) 및 Enable Hardware assisted virtualization(하드웨어 지원 가상화 사용 설정)을 사용 중지합니다. 또한 Avast 하드웨어 가상화가 사용 중지된 후 SDK Manager에서 최신 HAXM을 완전히 다시 설치하여 HAXM이 다시 제대로 설정되도록 해야 합니다.

Windows에서 HAXM으로 인해 AVD가 정지되는 경우가 있으며 McAfee를 완전히 제거하면 문제를 해결할 수 있습니다.

AVD를 실행할 수 없음

최신 에뮬레이터의 비정상 종료 보고서가 있는 경우 AVD가 실행되지 않을 수 있습니다(문제 #281725854). 이 문제는 Canary 버전 33.x에서 32.1.13으로 업데이트했고, 마지막으로 33.x 버전을 실행했을 때 비정상 종료되었으며, 이후 AVD를 재부팅하지 않아 %TEMP% 또는 /tmp 디렉터리가 여전히 설정된 상태로 유지된 사용자에게만 발생합니다. 이 문제가 발생한다면 %TEMP% 디렉터리(Linux 또는 macOS: /tmp)를 삭제해 보세요.

지원되지 않는 macOS 버전의 HAXM

지원되지 않는 이전 버전의 macOS(예: 10.9)에서 Android Emulator를 사용하는 경우 HAXM도 이전 버전(6.1.2)을 사용해야 할 수 있습니다.

업데이트 후 Android Emulator가 느리게 실행됨

다양한 외부 요인으로 인해 업데이트 후 Android Emulator가 느리게 실행될 수 있습니다. 문제를 해결하려면 다음 단계를 따르세요.

  • Intel GPU(특히 Intel HD 4000)가 있는 경우 최신 Intel 그래픽 드라이버를 다운로드하여 설치합니다.
  • 시스템에 Intel HD 4000 GPU와 별개의 GPU가 둘 다 있는 경우에는 기기 관리도구에서 HD 4000 GPU를 사용 중지하여 별개의 GPU가 사용되도록 합니다.
  • -gpu angle, -gpu swiftshader 또는 -gpu guest 모드를 사용하여 에뮬레이터를 실행합니다. 명령줄에서 그래픽 가속 옵션을 구성하는 방법에 관한 자세한 내용은 하드웨어 가속 구성을 참고하세요.
  • IPv6 연결이 없는 경우 라우터에서 IPv6 주소를 사용하지 않도록 합니다.

여전히 Android Emulator가 느리게 실행된다면 문제를 조사하는 데 필요한 Android Emulator 세부정보를 포함하여 버그를 신고하세요.

Windows: 여유 RAM 및 할당된 메모리

Android Emulator는 시작할 때 Android 게스트 운영체제의 RAM을 초기화해야 합니다. Windows에서 에뮬레이터는 시작 시 게스트 메모리의 전체 크기를 고려하도록 Windows에 요청합니다. 실제 작업 중에는 요청 시 메모리가 페이지 인될 수도 있습니다. 에뮬레이터가 시작 시 게스트 메모리의 전체 크기를 요청하는 이유는 Windows에서 잠재적 작업 세트 전체를 저장하는 데 필요한 물리적 RAM과 페이지 파일을 보수적인 기준에서 충분히 확보하려고 하기 때문입니다. 이 요청은 메모리를 삭제하거나 여유 메모리를 확보할 기회도 없이 모든 게스트 메모리가 빠르게 터치되는 최악의 경우에 대비합니다.

Android Emulator에서 Windows에 게스트 메모리의 전체 크기를 고려하도록 요청할 때 요청이 현재 커밋 제한(사용 가능한 물리적 RAM과 페이지 파일의 합계)을 초과하는 경우가 있습니다. 이 경우 Windows는 최악의 경우에 해당하는 작업 세트가 물리적 RAM 또는 페이지 파일에 적합하다고 보장할 수 없으며 Android Emulator는 시작되지 않습니다.

일반적으로 페이지 파일과 물리적 RAM에 할당되는 하드 드라이브 공간은 Android Emulator 사용 사례의 대부분을 충분히 수용할 수 있습니다. 하지만 커밋 제한을 초과하여 Android Emulator가 시작되지 않는 경우에는 Windows Task Manager(작업 관리자)의 Performance(성능) 탭에 표시되는 현재 할당된 메모리를 확인하시기 바랍니다. Task Manager(작업 관리자)를 열려면 Ctrl+Shift+Esc를 누르세요.

다음과 같이 다양한 방법으로 커밋 제한을 초과할 가능성을 낮출 수 있습니다.

  • Android Emulator를 시작하기 전에 사용되지 않는 애플리케이션과 파일을 닫아 물리적 RAM을 확보합니다.
  • 서드 파티 메모리 관리 및 메모리 압축 유틸리티를 사용 중지합니다. 이러한 유틸리티에 비효율적으로 과도하게 메모리가 할당되고 시스템이 커밋 제한에 더 가까워질 수 있습니다.
  • Windows 페이지 파일의 경우 Android Emulator 및 기타 애플리케이션의 요구가 증가함에 따라 더 유연하고 동적으로 페이지 파일 크기(및 커밋 제한)를 늘릴 수 있는 시스템 관리 크기를 사용하세요.

    할당된 메모리 및 유연한 설정이 가장 효과적인 이유에 관한 자세한 내용은 이 Microsoft 도움말을 참고하세요.

도구 창에서 멀티터치가 작동하지 않음

두 손가락을 사용한 화면 이동을 비롯하여 멀티 터치 동작은 에뮬레이터가 도구 창에서 실행될 때 작동하지 않습니다. 멀티 터치를 사용 설정하려면 별도의 창에서 에뮬레이터를 실행하세요.

에뮬레이터가 블루투스 오디오 출력을 저하시킴

블루투스 헤드셋을 사용하는 경우 에뮬레이터를 실행할 때 블루투스 헤드폰 오디오 출력이 저하될 수 있습니다(문제 183139207). 이는 에뮬레이터가 실행될 때 헤드셋의 마이크가 켜지고 이로 인해 헤드셋이 듀플렉스 모드를 전환하면서 품질이 저하되기 때문에 발생합니다.

이 문제를 방지하려면 Android Virtual Device(AVD)의 config.ini 파일에 hw.audioInput=no를 추가하여 에뮬레이터에서 마이크를 사용 중지합니다. AVD의 config.ini 파일을 찾으려면 기기 관리도구에서 AVD로 이동하여 더보기 메뉴를 클릭하고 Show on Disk를 선택합니다.

Windows: AVD 이름에 유니코드가 있으면 에뮬레이터가 실행되지 않음

Windows에서 기기 관리도구는 Android Virtual Device(AVD)를 만들 때 기본적으로 C:\Users\<name>\.android\avd에 AVD를 만듭니다. 그러나 AVD 이름(<name>)에 유니코드가 있으면 에뮬레이터에서 이 기본 위치를 사용하여 AVD를 제대로 실행할 수 없습니다.

이 문제는 Android Emulator 31.3.6 이상에서 해결됩니다. 이 문제를 해결하려면 Tools > SDK Manager를 선택하여 에뮬레이터를 업데이트하세요.

또는 이 문제를 해결하려면 AVD를 만들기 전에 ANDROID_SDK_HOME 환경 변수를 맞춤 디렉터리로 설정하세요. 예를 들어 C:\Android\home 디렉터리를 만든 후 ANDROID_SDK_HOME을 새로 만든 디렉터리로 설정합니다. 자세한 내용은 환경 변수를 참고하세요.

삽입된 에뮬레이터 창이 너무 작음

1024x768과 같이 해상도가 낮은 시스템에서는 Android 스튜디오의 도구 창에서 실행할 때 에뮬레이터 화면을 읽기 어려울 수 있습니다. 에뮬레이터에 더 많은 공간을 제공하려면 기기 관리도구 도구 창이 열려 있는 경우 닫습니다. 에뮬레이터 창을 Android 스튜디오 밖으로 가져올 수도 있습니다. 이렇게 하려면 에뮬레이터 창에서 Settings > View Mode를 클릭하고 Dock Pinned 대신 Window를 선택합니다.

오류: vulkan-1.dll을 찾을 수 없음

vulkan-1.dll cannot be found 오류로 인해 에뮬레이터를 실행할 수 없다면 에뮬레이터를 업데이트해야 할 수 있습니다. Android 스튜디오에서 에뮬레이터를 업데이트하려면 Tools > SDK Manager로 이동하여 최신 안정화 버전의 Android 플랫폼을 설치하세요.

또는 Vulkan 그래픽 라이브러리를 사용하는 앱이 필요하지 않은 경우 -feature -Vulkan 플래그로 명령줄에서 에뮬레이터를 실행하여 Vulkan을 사용 중지합니다.

인터넷 연결 없음: 서버 DNS 주소를 찾을 수 없음

에뮬레이터가 인터넷에 연결할 수 없다면 -dns-server “2001:4860:4860::8844,2001:4860:4860::8888,8.8.8.8,8.8.4.4” 옵션을 사용하여 명령줄에서 에뮬레이터를 실행해 보세요. 이 명령어는 쉼표로 구분된 Google Public DNS IP 주소 목록을 제공합니다. Google Public DNS에 대한 자세한 내용은 기기용 Google Public DNS를 참고하세요.

인터넷 연결 없음: DNS 변환 문제

/etc/resolv.conf 파일의 DNS 주소가 제대로 작동하지 않는 경우가 있습니다. 이 문제를 해결하려면 명령줄에서 에뮬레이터를 실행(-dns-server 8.8.8.8 또는 -dns.server 2001:4860:4860::8888 옵션 사용)하여 IPv6 전용 네트워크를 통해 연결합니다.

스냅샷을 만들 수 없음

Vulkan 그래픽 라이브러리가 포함된 에뮬레이터 스냅샷을 만드는 것은 지원되지 않습니다. Vulkan 없이 에뮬레이터를 실행하려면 -feature -Vulkan 플래그를 사용하여 명령줄에서 에뮬레이터를 실행하세요. 또는 개발 워크플로의 일부로 스냅샷을 사용하려면 Vulcan(예: API 30 이상의 Chrome)에서 앱을 제거하고 사용하지 마세요.

웹페이지를 제대로 열 수 없음

API 수준 30부터 Chrome은 Vulkan 그래픽 라이브러리를 렌더링 백엔드로 사용하며 특정 시스템에서 호환성 문제가 발생할 수 있습니다. Chrome이 제대로 렌더링되지 않으면 -feature -Vulkan 플래그를 사용하여 명령줄에서 에뮬레이터를 실행해 보세요.

Intel HAXM 하이퍼바이저가 Intel iX 이전 버전의 CPU를 완전히 지원하지 않음

컴퓨터에 Intel iX 이전 버전의 CPU와 Intel HAXM 하이퍼바이저가 있는 경우 에뮬레이터에 성능 문제가 발생할 수 있습니다. 에뮬레이터가 이러한 오래된 시스템에서 성능을 개선할 목적으로 하드웨어 가속을 사용할 수 없기 때문입니다. Intel iX 이전 CPU를 사용하는 경우 에뮬레이터 대신 실제 기기를 사용하면 테스트 환경이 더 개선될 수 있습니다.

하이퍼바이저가 x86 Android 시스템에 필요한 특정 CPU 기능을 에뮬레이션할 수 없음

일반적으로 하이퍼바이저는 x86 Android 시스템에 필요한 스트리밍 SIMD 확장 프로그램(SSE)과 같은 특정 CPU 기능을 에뮬레이션할 수 없습니다.

ChromeOS에서 Android Virtual Device가 실행되지 않음

ChromeOS에서는 libnss3 종속 항목이 누락되어 Android Virtual Device(AVD)가 실행되지 않을 수 있습니다. AVD를 성공적으로 실행하려면 sudo apt install libnss3을 실행하여 libnss3 라이브러리를 수동으로 설치하세요.

GPU 드라이버 경고 - Intel HD4000의 소프트웨어로 대체

GPU 드라이버 폴백에 대한 경고가 표시되면 GPU 구성을 하드웨어로 변경해 보세요. 기본적으로 GPU 구성은 '자동'이 사용되며, 이로 인해 소프트웨어 렌더링이 선택될 수 있습니다. 하드웨어를 선택하는 경우 하드웨어 렌더링을 사용하도록 강제할 수 있어야 합니다(그럼에도 불구하고 경고 메시지가 표시될 수도 있음).

Play 스토어가 아닌 이미지의 경우 기기 관리자 -> 점 3개 -> 수정에서 처리할 수 있습니다. Play 스토어 이미지의 경우 이러한 2개의 구성 파일을 수동으로 수정해야 합니다.

~/.android/your_avd_name.avd/config.ini

~/.android/your_avd_name.avd/hardware-qemu.ini

hw.gpu.modehost로 변경합니다.

자세한 내용은 버그를 참고하세요.

에뮬레이터가 Windows Chrome 원격 데스크톱에서 부팅되지 않음

Windows에서 Chrome 원격 데스크톱을 사용하는 동안 에뮬레이터가 부팅되지 않는 경우 현재 권장되는 해결 방법은 -gpu host 또는 -gpu swiftshader와 같은 GPU 플래그를 사용하는 것입니다.