Не удается запустить эмулятор в 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
, вы сможете найти сломанные пакеты
-
Попробуйте установить изображения системного эмулятора с поддержкой API Google, нежели Intel. Так же, как, я решил свою проблему, запустив другое изображение системы.
-
Эксперимент по Virtulaization на основе KVM, предложенный Google для Linux