Не удается запустить эмулятор в Android Studio

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

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

Кто-нибудь знает, как это исправить?

Ответ 1

Возможно, у вас действительно нет системных образов. Дважды проверьте, что $ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a существует и не пуст. Если они действительно отсутствуют - установите/переустановите с помощью менеджера SDK.

Ответ 2

Перейдите в раздел Инструменты | Android | AVD Manager

Нажмите стрелку в столбце "Действия" справа (где появляется сообщение об ошибке)

Выберите "Редактировать"

Оставьте выбор по умолчанию (для меня, MNC x86 Android M)

Нажмите "Далее"

Нажмите "Готово"

Это экономит ваш AVD, и теперь ошибка исчезла из последнего столбца. Теперь эмулятор работает нормально.

Ответ 3

Я исправился, запустив "C:\Program Files\Android\android-sdk\AVD Manager.exe" и восстановив поврежденное устройство.

Ответ 4

Просто исправлено это. Надеюсь, это поможет другим. (Проблема, как в студии Android v2) Эта проблема предназначена для эмуляторов рук. В этом примере я использую API-интерфейс armeabi-v7a 16

Исправление состоит из трех шагов:

Шаг 1: Откройте диспетчер sdk и убедитесь, что вы установили ARM EABI v7a System Image

Шаг 2. Это очевидный случай добавления местоположения sdk к системным переменным.

Щелкните правой кнопкой мыши значок "Этот ПК" на рабочем столе, затем

Properties -> Advanced system settings -> Environment Variables... Затем добавьте путь к sdk как новый в раздел системных переменных, используя имя переменной ANDROID_SDK_ROOT.

Шаг 3. Перезапустите Android Studio для внесения изменений в регистр. После исправления проблемы ANDROID_SDK_ROOT является undefined, эмулятор все еще не может найти файлы ядра, даже если он видит, что диспетчер sdk установил его на

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

Причина - это смешение между местоположением, в котором менеджер sdk устанавливает файл ядра и местоположение, которое ищет эмулятор.

Если вы откроете свой config.ini(Android Studio → AVD Mananger → "Показать на диске" ) для своего эмулятора, вы увидите следующую строку:

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

(i.e\path-to-sdk\add-ons\addon -....)

Вместо изменения этого значения в файле config.ini я скопировал

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

(файл ядра из папки sdk manager установлен)

к

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

И это был недостающий файл ядра. Вы можете запустить эмулятор. (Вам нужно будет закрыть Android-студию и снова открыть ее снова). Дайте эмулятору некоторое время, так как оно в 10 раз меньше по сравнению с x86. (Шахта заняла около 5 минут, чтобы начать)

Ответ 5

Короткий ответ: попытайтесь создать одно и то же изображение, используя старую школу <AndroidSDK>\AVD Manager.exe.

Работая в Android Studio, используя все интегрированные инструменты, для меня стало естественным не использовать старых менеджеров (AVD/SDK).

В моем случае у меня была эта проблема при использовании нового (интегрированного) AVD Manager для создания устройств со старыми системными изображениями (API 11 и ниже, как я уже тестировал).

Когда я попытался использовать старый инструмент AVD Manager (расположенный в <AndroidSDK>\AVD Manager.exe) для создания этих старых изображений устройства, у меня был успех.

Ответ 6

Привет, только что столкнулся с той же проблемой, что и вы, 3-я ссылка в google привела меня к этому фрагменту кода, который выдает ошибку,

if (kernelFile == NULL) {
        kernelFile = avdInfo_getKernelPath(avd);
        if (kernelFile == NULL) {
            derror( "This AVD 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 ", затем измените процессор        * type автоматически. Это плохой подход к настройке        * управление, но должно позволить нам пройти мимо здания ARMv7        * системные изображения с dex preopt pass"

Итак, я вернулся и загрузил версию intel intel x86 для моего желаемого уровня API и смог получить эмулятор без ошибки. Надеюсь, вам это тоже поможет.

Ответ 7

Обычно ошибка возникает из-за неподходящего эмулятора AVD для типа приложения, для которого вы разрабатываете. Например, если вы разрабатываете приложение для ношения, но вы пытаетесь использовать эмулятор телефона для его запуска.

Ответ 8

В моем случае (Windows 10) причина заключалась в том, что я осмелился распаковать sdk android в папку по умолчанию. Когда я переместил его по умолчанию, c:/Users/[username]/AppData/Local/Android/Sdk и изменил пути в Android Studio и системных переменных, он начал работать.

Ответ 9

У меня была такая же ошибка. Решение для меня изменило путь ANDROID_HOME. Сначала я взглянул на tools- > android- > sdk manager из Android Studio. В этом окне мы видим путь, по которому Android Studio ищет SDK: изображение

Затем я открыл оболочку Windows CMD, выполнив:

echo %ANDROID_HOME%

но путь был отличным от пути в ANROID STUDIO CONFIGURATION первого шага.

Решение заключалось в изменении в пользовательской среде ANDROID_HOME на один из первых шагов: изображение

Я, наконец, закрыл оболочку cmd и открыл еще одну команду cmd для выполнения:

echo %ANDROID_HOME%

путь был обновлен, и я смог полностью запустить эмулятор.

Ответ 10

  • Откройте студию Android.
  • Выберите настройки > Системные настройки > Android SDK
  • Получите "Местоположение Android SDK".
  • Задайте переменную окружения ANDROID_SDK_ROOT этому значению.

Это сработало для меня, и я нахожусь в Windows 10 и Android studio 2.3.3

Ответ 11

Общий подход к решению этой проблемы.

1.ЧЕТИТЕ ваш менеджер SDK, запустив из своей студии android studio и standal sdk, выполнив ./android.sh, вы сможете найти сломанные пакеты

  1. Попробуйте установить изображения системного эмулятора с поддержкой API Google, нежели Intel. Так же, как, я решил свою проблему, запустив другое изображение системы.

  2. Эксперимент по Virtulaization на основе KVM, предложенный Google для Linux