티스토리 뷰개발 중 에뮬레이터 종료 버튼을 누르더라도 현재 상태가 저장되어 종료되기 때문에 다시 실행하면 먹통인 상태 그대로 켜지는 증상이 있다. Show
이때 안드로이드 스튜디오에서 Android Vitual Device Manager (ADV Manager)를 켠 후 문제가 있는 에뮬레이터 맨 오른쪽 드롭다운 화살표를 클릭 후 Cold Boot Now로 부팅을 시도한다. 에뮬레이터가 부팅이 순조롭게 되는 것을 볼 수 있다. 주요 콘텐츠로 건너뛰기 이 브라우저는 더 이상 지원되지 않습니다. 최신 기능, 보안 업데이트, 기술 지원을 이용하려면 Microsoft Edge로 업그레이드하세요. Android 에뮬레이터 문제 해결
이 문서의 내용이 문서에서는 Android Emulator를 구성하고 실행하는 동안 발생하는 가장 일반적인 경고 메시지 및 문제에 대해 설명합니다. 또한 에뮬레이터 문제를 진단하는 데 도움이 되는 다양한 문제 해결 팁과 이러한 오류를 해결하는 솔루션에 대해 설명합니다. Windows의 배포 문제앱을 배포할 때 에뮬레이터에서 일부 오류 메시지가 표시될 수 있습니다. 가장 일반적인 오류 및 해결 방법이 여기에 설명되어 있습니다. 배포 오류에뮬레이터에 APK 설치 실패 또는 Android Debug Bridge(adb) 실행 실패에 대한 오류가 표시되면 Android SDK가 에뮬레이터에 연결할 수 있는지 확인합니다. 에뮬레이터 연결을 확인하려면 다음 단계를 수행합니다.
MMIO 액세스 오류MMIO 액세스 오류가 발생 했습니다. 라는 메시지가 표시되면 에뮬레이터를 다시 시작하세요. Google Play 서비스 누락에뮬레이터에서 실행 중인 가상 디바이스에 Google Play 서비스 또는 Google Play 스토어가 설치되어 있지 않은 경우, 이 조건은 이러한 패키지를 포함하지 않고 가상 디바이스를 만들 때 발생하는 경우가 많습니다. 가상 디바이스를 만들 때(Android Device Manager를 사용하여 가상 디바이스 관리 참조) 다음 옵션 중 하나 또는 둘 다를 선택해야 합니다.
예를 들어 이 가상 디바이스에는 Google Play 서비스 및 Google Play 스토어가 포함됩니다. 참고 Google Play 스토어 이미지는 픽셀, 픽셀 2, Nexus 5 및 Nexus 5X와 같은 몇 가지 기본 디바이스 유형에만 사용할 수 있습니다. 성능 문제성능 문제는 일반적으로 다음 문제 중 하나로 인해 발생합니다.
다음 섹션에서는 이러한 시나리오를 자세히 설명합니다. 하드웨어 가속을 사용할 수 없습니다.하드웨어 가속을 사용하도록 설정하지 않은 경우 Device Manager에서 시작하면 Windows 하이버파이저 플랫폼(WHPX)이 제대로 구성되지 않았음을 나타내는 오류 메시지가 포함된 대화 상자가 생성됩니다. 이 오류 메시지가 표시되면 하드웨어 가속을 확인하고 사용하도록 설정할 수 있는 단계에 대한 아래의 하드웨어 가속 문제를 참조하세요. 가속을 사용할 수 있지만 에뮬레이터가 너무 느리게 실행됩니다.이 문제의 일반적인 원인은 가상 디바이스(AVD)에서 x86 기반 이미지를 사용하지 않기 때문입니다. 가상 디바이스를 만들 때(Android Device Manager를 사용하여 가상 디바이스 관리 참조) x86 기반 시스템 이미지를 선택해야 합니다. 하드웨어 가속 문제하드웨어 가속에 Hyper-V 또는 HAXM을 사용하든 상관없이 구성 문제가 발생하거나 컴퓨터의 다른 소프트웨어와 충돌할 수 있습니다. 명령 프롬프트를 열고 다음 명령을 입력하여 하드웨어 가속이 활성화되었는지(및 에뮬레이터에서 사용 중인 가속 방법) 확인할 수 있습니다.
이 명령은 Android SDK가 C:\Program Files (x86)\Android\android-sdk의 기본 위치에 설치되어 있다고 가정합니다. 그렇지 않은 경우 컴퓨터에서 Android SDK의 위치에 대한 위의 경로를 수정합니다. 하드웨어 가속을 사용할 수 없음Hyper-V를 사용할 수 있는 경우 emulator-check.exe accel 명령에서 다음 예제와 같은 메시지가 반환됩니다.
HAXM을 사용할 수 있는 경우 다음 예제와 같은 메시지가 반환됩니다.
하드웨어 가속을 사용할 수 없는 경우 다음 예제와 같은 메시지가 표시됩니다(Hyper-V를 찾을 수 없는 경우 에뮬레이터에서 HAXM을 찾음).
하드웨어 가속을 사용할 수 없는 경우 컴퓨터에서 하드웨어 가속을 사용하는 방법에 대해 알아보려면 Hyper-V로 가속화를 참조하세요. 잘못된 BIOS 설정BIOS가 하드웨어 가속을 지원하도록 제대로 구성되지 않은 경우 emulator-check.exe accel 명령을 실행할 때 다음 예제와 유사한 메시지가 표시됩니다.
이 문제를 해결하려면 컴퓨터의 BIOS를 재부팅하고 다음 옵션을 활성화합니다.
하드웨어 가속이 활성화되어 있고 BIOS가 제대로 구성되어 있으면 에뮬레이터가 하드웨어 가속을 사용하여 성공적으로 실행되어야 합니다. 그러나 다음에 설명된 대로 Hyper-V 및 HAXM과 관련된 문제로 인해 문제가 계속 발생할 수 있습니다. Hyper-V 문제경우에 따라 Windows 기능 설정 또는 해제 대화 상자에서 Hyper-V와 Windows 하이퍼바이저 플랫폼을 모두 사용하도록 설정하면 Hyper-V가 제대로 설정되지 않을 수 있습니다. Hyper-V가 활성화되었는지 확인하려면 다음 단계를 수행합니다.
Hyper-V 및/또는 HypervisorPlatform이 활성화되어 있지 않은 경우 다음 PowerShell 명령을 사용하여 활성화합니다.
이러한 명령이 완료되면 다시 부팅합니다. Hyper-V를 사용하도록 설정하는 방법에 대한 자세한 내용(배포 이미지 서비스 및 관리 도구를 사용하여 Hyper-V를 사용하도록 설정하는 기술 포함)은 Hyper-V 설치를 참조하세요. HAXM 문제HAXM 문제는 다른 가상화 기술과의 충돌, 잘못된 설정 또는 만료된 HAXM 드라이버 때문인 경우가 많습니다. HAXM 프로세스 실행 중 아님HAXM이 설치된 경우 명령 프롬프트를 열고 다음 명령을 입력하여 HAXM 프로세스가 실행 중인지 확인할 수 있습니다.
HAXM 프로세스가 실행 중인 경우 다음 결과와 비슷한 출력이 표시되어야 합니다.
HAXM 가상화 충돌HAXM은 Hyper-v, Windows Device Guard 및 일부 바이러스 백신 소프트웨어 등을 사용하는 다른 기술과 충돌할 수 있습니다.
잘못된 BIOS 설정Windows PC에서 HAXM을 사용할 경우 가상화 기술(인텔 VT-x)이 BIOS에서 사용하도록 설정되어야 HAXM이 작동합니다. VT-x가 비활성화되어 있으면 Android Emulator를 시작할 때 다음과 유사한 오류가 표시됩니다. 이 컴퓨터가 HAXM의 요구 사항을 충족하지만 인텔 가상화 기술(VT-x)이 켜져 있지 않습니다. 이 오류를 해결하려면 컴퓨터를 BIOS로 부팅하고 VT-x와 SLAT(Second-Level Address Translation)를 모두 사용하도록 설정한 다음, 컴퓨터를 다시 Windows로 시작합니다. Hyper-V 비활성화Windows 10 2018년 4월 업데이트(빌드 1803) 및 Hyper-V가 활성화되기 전에 Windows의 버전을 사용 중인 경우 Hyper-V를 비활성화하고 컴퓨터를 다시 부팅하여 HAXM을 설치하고 사용해야 합니다. Windows 10 2018년 4월 업데이트(빌드 1803) 이상을 사용하는 경우 Android Emulator 버전 27.2.7 이상은 하드웨어 가속에 HAXM 대신 Hyper-V를 사용할 수 있으므로 Hyper-V를 비활성화할 필요가 없습니다. 다음 단계를 따라 제어판에서 Hyper-V를 비활성화할 수 있습니다.
또는 다음 PowerShell 명령을 사용하여 Hyper-V 하이퍼바이저를 비활성화할 수 있습니다.
Intel HAXM 및 Microsoft Hyper-V는 동시에 활성 상태가 될 수 없습니다. 아쉽게도 컴퓨터를 다시 시작하지 않고 Hyper-V와 HAXM 간에 전환하는 방법은 없습니다. Device Guard 및 Credential Guard가 활성화된 경우 위의 단계를 수행해도 Hyper-V가 비활성화되지 않는 경우가 있습니다 Hyper-V를 비활성화할 수 없는 경우(또는 비활성화된 것 같지만 HAXM 설치는 여전히 실패하는 경우) 다음 섹션의 단계를 따라 Device Guard 및 Credential Guard를 비활성화하세요. Device Guard 비활성화Device Guard 및 Credential Guard는 Windows 컴퓨터에서 Hyper-V가 비활성화되지 못하게 방지할 수 있습니다. 이러한 상황은 소유 조직에서 구성하고 제어하는 도메인 가입 머신에 종종 문제가 됩니다. Windows 10에서 다음 단계를 따라 Device Guard가 실행 중인지 확인하세요.
Device Guard가 활성화된 경우 다음 단계를 따라 비활성화합니다.
Hyper-V가 아직 비활성화되지 않은 경우 도메인 가입 컴퓨터의 정책으로 인해 Device Guard 또는 Credential Guard가 비활성화되지 않을 수 있습니다. 이 경우 도메인 관리자에게 Credential Guard의 옵트아웃할 수 있도록 예외를 요청할 수 있습니다. 또는 HAXM을 사용해야 하는 경우 도메인에 조인되지 않은 컴퓨터를 사용할 수 있습니다. 추가 문제 해결 팁다음 제안 사항은 Android 에뮬레이터 문제를 진단하는 데 유용한 경우가 많습니다. 명령줄에서 에뮬레이터 시작에뮬레이터가 아직 실행되고 있지 않으면 명령줄(Visual Studio 내에서가 아니라)에서 시작하여 해당 출력을 볼 수 있습니다. 일반적으로 Android 에뮬레이터 AVD 이미지는 다음 위치에 저장됩니다(사용자 이름을 Windows 사용자 이름으로 바꿈). C:\Users\username\.android\avd AVD의 폴더 이름을 전달하여 이 위치에서 AVD 이미지를 사용하여 에뮬레이터를 시작할 수 있습니다. 예를 들어 이 명령은 Pixel_API_27이라는 AVD를 시작합니다.
이 예제에서는 Android SDK가 C:\Program Files (x86)\Android\android-sdk의 기본 위치에 설치되어 있다고 가정합니다. 그렇지 않은 경우 컴퓨터에서 Android SDK의 위치에 대한 위의 경로를 수정합니다. 이 명령을 실행하면 에뮬레이터가 시작하는 동안 여러 줄의 출력이 생성됩니다. 특히 하드웨어 가속이 활성화되어 있고 제대로 작동하는 경우 다음 예제와 같은 줄이 인쇄됩니다(이 예제에서는 HAXM이 하드웨어 가속에 사용됨).
Device Manager 로그 보기종종 Device Manager 로그를 확인하여 에뮬레이터 문제를 진단할 수 있습니다. 이러한 로그는 다음 위치에 기록됩니다. C:\Users\username\AppData\Local\Xamarin\Logs\16.0 메모장과 같은 텍스트 편집기를 사용하여 각 DeviceManager.log 파일을 볼 수 있습니다. 다음 예제 로그 항목은 컴퓨터에서 HAXM을 찾을 수 없음을 나타냅니다.
macOS에서 배포 문제앱을 배포할 때 에뮬레이터에서 일부 오류 메시지가 표시될 수 있습니다. 가장 일반적인 오류 및 해결 방법은 아래에 설명되어 있습니다. 배포 오류에뮬레이터에 APK 설치 실패 또는 Android Debug Bridge(adb) 실행 실패에 대한 오류가 표시되면 Android SDK가 에뮬레이터에 연결할 수 있는지 확인합니다. 연결을 확인하려면 다음 단계를 수행합니다.
MMIO 액세스 오류MMIO 액세스 오류가 발생 했음이 표시되면 에뮬레이터를 다시 시작하세요. Google Play 서비스 누락에뮬레이터에서 실행 중인 가상 디바이스에 Google Play 서비스 또는 Google Play 스토어가 설치되어 있지 않은 경우, 이 조건은 일반적으로 패키지를 포함하지 않고 가상 디바이스를 만드는 경우에 발생합니다. 가상 디바이스를 만들 때(Android Device Manager를 사용하여 가상 디바이스 관리 참조) 다음 중 하나 또는 둘 다를 선택해야 합니다.
예를 들어 이 가상 디바이스에는 Google Play 서비스 및 Google Play 스토어가 포함됩니다. 참고 Google Play 스토어 이미지는 픽셀, 픽셀 2, Nexus 5 및 Nexus 5X와 같은 몇 가지 기본 디바이스 유형에만 사용할 수 있습니다. 성능 문제성능 문제는 일반적으로 다음 문제 중 하나로 인해 발생합니다.
다음 섹션에서는 이러한 시나리오를 자세히 설명합니다. 하드웨어 가속을 사용할 수 없습니다.하드웨어 가속을 사용하지 않으면 Android 에뮬레이터에 앱을 배포할 때 디바이스가 가속 없이 실행됨과 같은 메시지가 포함된 대화 상자가 팝업될 수 있습니다. 컴퓨터에서 하드웨어 가속이 활성화되어 있는지(또는 가속을 제공하는 기술을 알고 싶다면) 확실하지 않은 경우, 하드웨어 가속을 확인하고 활성화할 수 있는 단계에 대한 아래의 하드웨어 가속 문제를 참조하세요. 가속을 사용할 수 있지만 에뮬레이터가 너무 느리게 실행됩니다.이 문제의 일반적인 원인은 가상 디바이스에서 x86 기반 이미지를 사용하지 않기 때문입니다. 가상 디바이스를 만들 때(Android Device Manager를 사용하여 가상 디바이스 관리 참조) x86 기반 시스템 이미지를 선택해야 합니다. 하드웨어 가속 문제에뮬레이터의 하드웨어 가속을 위해 하이퍼바이저 프레임워크 또는 HAXM을 사용하든 상관없이 설치 문제 또는 오래된 버전의 macOS로 인해 발생하는 문제에 직면할 수 있습니다. 다음 섹션에서는 이 문제를 해결하는 데 도움을 줄 수 있습니다. 하이퍼바이저 프레임워크 문제최신 Mac에서 macOS 10.10 이상을 사용하는 경우 Android 에뮬레이터는 하드웨어 가속을 위해 하이퍼바이저 프레임워크를 자동으로 사용합니다. 그러나 10.10 이전 버전의 macOS를 실행하는 일부 이전 Mac 또는 Mac은 하이퍼바이저 프레임워크 지원을 제공하지 않을 수 있습니다. Mac에서 하이퍼바이저 프레임워크를 지원하는지 여부를 확인하려면 터미널을 열고 다음 명령을 입력합니다.
Mac에서 하이퍼바이저 프레임워크를 지원하는 경우 위의 명령은 다음 결과를 반환합니다.
Mac에서 하이퍼바이저 프레임워크를 사용할 수 없는 경우 HAXM을 사용하여 가속화의 단계를 수행하여 가속화에 대해 HAXM을 대신 사용할 수 있습니다. HAXM 문제Android Emulator가 제대로 시작되지 않는 경우 이 문제는 HAXM 관련 문제로 인해 자주 발생합니다. HAXM 문제는 다른 가상화 기술과의 충돌, 잘못된 설정 또는 만료된 HAXM 드라이버 때문인 경우가 많습니다. HAXM 설치에서 설명한 단계를 통해 HAXM 드라이버를 다시 설치해 봅니다. 추가 문제 해결 팁다음 제안 사항은 Android 에뮬레이터 문제를 진단하는 데 유용한 경우가 많습니다. 명령줄에서 에뮬레이터 시작에뮬레이터가 아직 실행되고 있지 않으면 명령줄(Mac용 Visual Studio 내에서가 아니라)에서 시작하여 해당 출력을 볼 수 있습니다. 일반적으로 Android 에뮬레이터 AVD 이미지는 다음 위치에 저장됩니다. ~/.android/avd AVD의 폴더 이름을 전달하여 이 위치에서 AVD 이미지를 사용하여 에뮬레이터를 시작할 수 있습니다. 예를 들어 이 명령은 Pixel_2_API_28이라는 AVD를 시작합니다.
Android SDK가 기본 위치에 설치된 경우 에뮬레이터는 ~/Library/Developer/Xamarin/android-sdk-macosx/emulator 디렉터리에 있습니다. 그렇지 않은 경우, Mac에서 Android SDK의 위치에 대한 이 경로를 수정합니다. 이 명령을 실행하면 에뮬레이터가 시작하는 동안 여러 줄의 출력이 생성됩니다. 특히 하드웨어 가속이 활성화되어 있고 제대로 작동하는 경우 다음 예제와 같은 줄이 인쇄됩니다(이 예제에서는 하이퍼바이저 프레임워크가 하드웨어 가속에 사용됨).
의도 추가 이름 지정 관련 문제Android 실행 구성에서 의도 엑스트라를 설정하면 A-Z, a-z, '_', '-', 숫자만 지원됩니다. 또한 모든 키 값은 고유해야 합니다. Device Manager 로그 보기종종 Device Manager 로그를 확인하여 에뮬레이터 문제를 진단할 수 있습니다. 이러한 로그는 다음 위치에 기록됩니다. ~/Library/Logs/XamarinDeviceManager 각 Android Devices.log 파일을 두 번 클릭하여 콘솔 앱에서 열어 볼 수 있습니다. 다음 예제 로그 항목은 HAXM을 찾을 수 없음을 나타냅니다.
추가 리소스추가 리소스이 문서의 내용 |