Почему эмулятор андроида не запускается

Устранение неполадок в Android Emulator

В этой статье описаны наиболее типичные ошибки и предупреждения, возникающие при настройке и запуске Android Emulator. Кроме того, здесь описаны решения для устранения этих ошибок и различные советы по устранению неполадок, которые помогут вам диагностировать проблемы с эмулятором.

Проблемы развертывания в Windows

Эмулятор может отображать некоторые сообщения об ошибках при развертывании приложения. Здесь описаны наиболее распространенные ошибки и решения.

Ошибки развертывания

Если отображается ошибка о сбое при установке APK на ваш компьютер или при запуске Android Debug Bridge (adb), убедитесь, что пакет SDK для Android может подключиться к эмулятору. Для проверки связи с эмулятором сделайте следующее:

Запустите эмулятор из диспетчер устройств Android (выберите виртуальное устройство и нажмите кнопку Пуск).

Откройте командную строку и перейдите в папку, в которой установлен adb. Если пакет SDK для Android установлен по умолчанию, adb находится в папке C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe; Если нет, измените этот путь для расположения пакета SDK для Android на компьютере.

Введите следующую команду:

Если эмулятор доступен из Android SDK, то он отобразится в списке подключенных устройств. Пример:

Если эмулятор не отображается в этом списке, запустите диспетчер пакетов SDK для Android, примените все обновления, а затем повторите попытку запуска эмулятора.

Ошибка доступа к MMIO

Если появляется сообщение Произошла ошибка доступа к MMIO, перезапустите эмулятор.

Отсутствующие сервисы Google Play

Если на эмулированном устройстве Android не установлены службы Google Play или Google Play Store, вероятно, вы создали виртуальное устройство, исключающее эти пакеты. При создании виртуального устройства обязательно выберите один или оба из следующих параметров:

  • Api Google — включают службы Google Play на виртуальном устройстве.
  • Google Play Store — включает Google Play Store на виртуальном устройстве.

Например, это виртуальное устройство будет включать сервисы Google Play и Google Play Маркет:

Образы Google Play Маркет доступны только для некоторых типов базовых устройств, например Pixel, Pixel 2, Nexus 5 и Nexus 5X.

Проблемы производительности

Проблемы производительности обычно вызваны одной из следующих проблем:

  • Эмулятор работает без аппаратного ускорения.
  • Виртуальное устройство, работающее в эмуляторе с использованием образа на основе Arm.

В следующих разделах подробно описаны эти сценарии.

Аппаратное ускорение не включено

При запуске виртуального устройства без аппаратного ускорения в диспетчер устройств отображается диалоговое окно с ошибкой, аналогичное следующему изображению:

Чтобы устранить эту ошибку, выполните действия по устранению неполадок в разделе Проблемы с аппаратным ускорением .

Проблемы с аппаратным ускорением

При использовании аппаратного ускорения могут возникнуть проблемы с конфигурацией или конфликты с другим программным обеспечением на компьютере. Первым шагом в устранении неполадок является проверка включения аппаратного ускорения. Для проверки этого параметра можно использовать пакет SDK для Android. Откройте командную строку и введите следующую команду:

Эта команда предполагает, что пакет SDK для Android установлен в расположении по умолчанию C:\Program Files (x86)\Android\android-sdk. Если пакет SDK для Android установлен в другом месте, измените предыдущую команду в правильном расположении.

Убедитесь, что эмулятор Android обновлен. В Visual Studio нажмите инструменты> >Android SDK Manager. Перейдите на вкладку Сервис и посмотрите, доступно ли обновление для записи Android Emulator .

Аппаратное ускорение недоступно

Если Hyper-V доступен, ответом на команду emulator-check.exe accel будет следующее сообщение:

Если HAXM доступен, выводится подобное сообщение:

Если аппаратное ускорение недоступно, отобразится сообщение, как показано в следующем примере (эмулятор ищет HAXM, если ему не удается найти Hyper-V):

Если аппаратное ускорение недоступно, см. статью Включение ускорения Hyper-V , чтобы узнать, как включить аппаратное ускорение на компьютере.

Неправильные настройки BIOS

Если BIOS не настроен должным образом для поддержки аппаратного ускорения, при выполнении команды emulator-check.exe accel отобразится сообщение, аналогичное следующему примеру:

Чтобы устранить эту проблему, перезагрузите BIOS на компьютере и включите следующие параметры:

  • Технология виртуализации (может иметь другое название в зависимости от производителя системной платы).
  • Предотвращение исполнения данных на основе оборудования.

Если проблемы по-прежнему возникают из-за проблем, связанных с Hyper-V и HAXM, см. следующий раздел.

Проблемы с Hyper-V

В некоторых случаях при включении одновременно Hyper-V и платформы гипервизора Windows в диалоговом окне Включение и отключение компонентов Windows Hyper-V включается некорректно. Чтобы убедиться, что Hyper-V включен, сделайте следующее:

Введите PowerShell в поле поиска Windows.

Щелкните правой кнопкой мыши Windows PowerShell в результатах поиска и выберите Запуск от имени администратора.

В консоли PowerShell выполните следующую команду:

Если Hyper-V не включен, появится сообщение, аналогичное следующему примеру, указывающее, что hyper-V находится в состоянии Отключено:

В консоли PowerShell выполните следующую команду:

Если гипервизор не включен, отобразится сообщение, аналогичное следующему примеру, указывающее, что hypervisorPlatform находится в состоянии Отключено:

Если Hyper-V или HypervisorPlatform не включены, используйте следующие команды PowerShell, чтобы включить их:

После завершения этих команд выполните перезагрузку.

Дополнительные сведения о включении Hyper-V (в том числе методы включения Hyper-V с помощью средства обслуживания и администрирования образов развертывания) см. в разделе Установка Hyper-V.

Проблемы с HAXM

Проблемы с HAXM часто вызваны конфликтом с другими технологиями виртуализации, неправильной конфигурацией или устаревшим драйвером HAXM.

Процесс HAXM не выполняется

Если решение HAXM установлено, введите следующую команду в командной строке, чтобы проверить, что процесс HAXM запущен:

Если процесс HAXM запущен, вы увидите примерно следующий результат:

Сведения об устранении неполадок HAXM см. в статье Устранение неполадок на вики-сайте HAXM.

Конфликты HAXM с другими технологиями виртуализации

HAXM может конфликтовать с другими технологиями, использующими виртуализацию, такими как Hyper-V, Windows Device Guard и некоторые антивирусы:

Hyper-V — если вы используете версию Windows до обновления Windows 10 апреля 2018 г. (сборка 1803) и включена hyper-V, выполните действия, описанные в разделе Отключение Hyper-V, чтобы включить HAXM.

Device Guard — Device Guard и Credential Guard могут предотвратить отключение Hyper-V на компьютерах Windows. Порядок отключения Device Guard и Credential Guard см. в разделе Отключение Device Guard.

Антивирусная программа. Если вы используете антивирусную программу, которая использует аппаратную виртуализацию (например, Avast), отключите или удалите это программное обеспечение, перезагрузите и повторите попытку эмулятора Android.

Неправильные параметры BIOS для HAXM

В Windows HAXM не будет работать, если в BIOS не включена технология виртуализации (Intel VT-x). Если VT-x отключен, при попытке запустить эмулятор Android вы получите сообщение об ошибке следующего вида:

Этот компьютер соответствует требованиям HAXM, но технология Intel Virtualization Technology (VT-x) не включена.

Чтобы исправить эту ошибку, загрузите компьютер в BIOS, включите VT-x и SLAT (преобразование адресов второго уровня) и перезагрузите компьютер.

Отключение Hyper-V

Если вы используете версию Windows до обновления Windows 10 апреля 2018 г. (сборка 1803) и включена hyper-V, необходимо отключить Hyper-V и перезагрузить компьютер, чтобы установить и использовать HAXM. Если вы используете Windows 10 обновлении за апрель 2018 г. (сборка 1803) или более поздней версии, эмулятор Android версии 27.2.7 или более поздней может использовать Hyper-V (вместо HAXM) для аппаратного ускорения, поэтому не нужно отключать Hyper-V.

Технологию Hyper-V можно отключить из панели управления, выполнив следующие действия:

Введите компоненты windows в поле поиска Windows и выберите Включение и отключение компонентов Windows в результатах поиска.

Снимите флажок Hyper-V:

Также для отключения гипервизора Hyper-V можно использовать следующую команду Powershell:

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 могут препятствовать отключению технологии Hyper-V на компьютерах под управлением ОС Windows. Это часто происходит на компьютерах, присоединенных к доменам, которые настраиваются и контролируются управляющей ими организацией. Чтобы проверить, выполняется ли функция Device Guard в ОС Windows 10, выполните следующие действия:

Введите Сведения о системе в поле поиска Windows и выберите Сведения о системе в результатах поиска.

В разделе Сведения о системе проверьте наличие службы Безопасность на основе виртуализации Device Guard и убедитесь, что она имеет состояние Выполняется:

Если функция Device Guard включена, выполните следующие действия для ее отключения:

Убедитесь, что технология Hyper-V отключена в окне Включение или отключение компонентов Windows, как описывается в предыдущих разделах.

В поле поиска Windows введите gpedit.msc и выберите элемент Изменение групповой политики. Будет запущен редактор локальных групповых политик.

В редакторе локальных групповая политикаперейдите к разделу Конфигурация > компьютера Административные шаблоны > System > Device Guard:

Измените значение параметра Включить средство обеспечения безопасности на основе виртуализации на Отключено (как показано выше) и закройте редактор локальных групповых политик.

В поле поиска Windows введите cmd. Когда в результатах поиска появится элемент Командная строка, щелкните пункт Командная строка правой кнопкой мыши и выберите Запустить от имени администратора.

Скопируйте и вставьте следующие команды в окно командной строки (если диск Z: используется, выберите вместо него букву свободного диска):

Перезапустите компьютер. На экране загрузки должен появиться запрос следующего вида:

Вы действительно хотите отключить Credential Guard?

Нажмите указанную в запросе клавишу, чтобы отключить Credential Guard.

После перезагрузки компьютера еще раз убедитесь, что технология Hyper-V отключена (см. ранее описываемые действия).

Если технология Hyper-V по-прежнему не отключена, значит, отключение функций Device Guard или Credential Guard запрещено политиками на вашем присоединенном к домену компьютере. В таком случае вы можете запросить у администратора домена исключение, которое позволит отключить Credential Guard. Кроме того, вы можете использовать компьютер, который не присоединен к домену, если необходимо использовать HAXM.

Дополнительные советы по устранению неполадок

Следующие рекомендации часто помогают диагностировать проблемы с эмулятором Android.

Запуск эмулятора из командной строки

Если эмулятор еще не запущен, его можно запустить из командной строки (а не из Visual Studio), чтобы просмотреть его выходные данные. Как правило, образы AVD эмулятора Android хранятся в следующем расположении: %userprofile%\.android\avd.

Запустите эмулятор с образом AVD из этого расположения, передав имя папки AVD. Например, эта команда запускает виртуальное устройство Android с именем Pixel_API_27:

Эта команда предполагает, что пакет SDK для Android установлен в расположении по умолчанию C:\Program Files (x86)\Android\android-sdk. Если пакет SDK для Android установлен в другом месте, измените предыдущую команду в правильном расположении.

При выполнении этой команды во время запуска эмулятора создается много строк выходных данных. В частности, строки, как в следующем примере, печатаются, если аппаратное ускорение включено и работает должным образом. В этом примере HAXM используется для аппаратного ускорения:

Просмотр журналов Device Manager

Часто можно диагностировать проблемы с эмулятором, просмотрев журналы Device Manager. Эти журналы записываются в следующее расположение: %userprofile%\AppData\Local\Xamarin\Logs\16.0.

Просмотрите файл DeviceManager.log в текстовом редакторе, например в Блокноте. В следующем примере записи журнала указано, что HAXM не найден на компьютере:

[!NOTE] > Google Play Store images are available only for some base device types such as Pixel, Pixel 2, Nexus 5, and Nexus 5X. ## Performance issues Performance issues are typically caused by one of the following problems: — The emulator is running without hardware acceleration. — The virtual device running in the emulator isn’t using an x86-based system image. The following sections cover these scenarios in more detail. ### Hardware acceleration isn’t enabled If hardware acceleration isn’t enabled, a dialog may pop up with a message such as **device will run unaccelerated** when you deploy your app to the Android emulator. If you’re not certain whether hardware acceleration is enabled on your computer (or you would like to know which technology is providing the acceleration), see [Hardware acceleration issues](#accel-issues-mac) below for steps you can take to verify and enable hardware acceleration. ### Acceleration is enabled but the emulator runs too slowly A common cause for this problem isn’t using an x86-based image in your virtual device. When you [create a virtual device](device-manager.md), be sure to select an x86-based system image: [![Selecting an x86 system image for a virtual device.](troubleshooting-images/mac/02-x86-virtual-device-m75-sml.png)](troubleshooting-images/mac/02-x86-virtual-device-m75.png#lightbox) ## Hardware acceleration issues Whether you’re using the Hypervisor Framework or HAXM for hardware acceleration of the emulator, you may run into problems caused by installation issues or an out-of-date version of macOS. The following sections can help you resolve this issue. ### Hypervisor Framework issues If you’re using macOS 10.10 or later on a newer Mac, the Android emulator will automatically use the Hypervisor Framework for hardware acceleration. However, some older Macs or Macs running a version of macOS earlier than 10.10 may not provide Hypervisor Framework support. To determine whether or not your Mac supports the Hypervisor Framework, open a Terminal and enter the following command: «`bash sysctl kern.hv_support «` If your Mac supports the Hypervisor Framework, the above command will return the following result: «`bash kern.hv_support: 1 «` If the Hypervisor Framework isn’t available on your Mac, you can follow the steps in [Accelerating with HAXM](

/android/get-started/installation/android-emulator/hardware-acceleration.md?tabs=vsmac#haxm-mac) to use HAXM for acceleration instead. ### HAXM issues If the Android Emulator doesn’t start properly, this problem is often caused by problems with HAXM. HAXM issues are often the result of conflicts with other virtualization technologies, incorrect settings, or an out-of-date HAXM driver. Try reinstalling the HAXM driver, using the steps detailed in [Installing HAXM](

/android/get-started/installation/android-emulator/hardware-acceleration.md?tabs=vsmac#install-haxm-mac). ## Additional troubleshooting tips The following suggestions are often helpful in diagnosing Android emulator issues. ### Starting the emulator from the command line If the emulator isn’t already running, you can start it from the command line (rather than from within Visual Studio for Mac) to view its output. Typically, Android emulator AVD images are stored at the following location: _

/.android/avd_. You can launch the emulator with an AVD image from this location by passing in the folder name of the AVD. For example, this command launches an AVD named **Pixel_2_API_28**: «`bash

Источник

TypeRus
Adblock
detector