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


96

Я щойно закінчив установку Android studio і намагався взяти його на пробний запуск. При спробі запустити програму з'являється таке повідомлення про помилку

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

Хтось знає, як це виправити ????


1
Перевірте цей відповідь stackoverflow.com/questions/9712605 / ...
Psypher

@ Тед Поттель, чи відповідала відповідь нижче на ваше запитання? Якщо так, будь ласка, клацніть прапорець біля нього.
Гарріс

Відповіді:


27

Можливо, у вас справді відсутні системні образи. Перевірте, що $ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7aіснує та не є порожнім. Якщо вони дійсно відсутні - встановіть / переінсталюйте за допомогою менеджера SDK.


2
У мене дві проблеми: 1: я не можу знайти $ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a, 2: Як перевстановити віртуальний пристрій за допомогою менеджера SDK
Муса Хайдарі

Однак, читаючи вашу відповідь, я міг би обійти шлях, і це було створити новий віртуальний пристрій, і проблема не виникала для нового
Муса Хайдарі,

4
У диспетчері SDK переконайтеся, що ви встановили прапорець «Показати деталі пакету», щоб можна було переглянути, які системні образи встановлені, а якщо ні, то встановити їх
Мартін Девіс,

21

Перейдіть до Інструменти | Android | Менеджер AVD

Клацніть стрілку під стовпчиком Дії вкрай праворуч (там, де повідомлення про помилку)

Виберіть Редагувати

Залишити вибір за замовчуванням (для мене MNC x86 Android M)

Клацніть Далі

Клацніть Готово

Це зберігає ваш AVD, і помилка відсутня з останнього стовпця. І емулятор чудово працює зараз.


15

Просто виправив це. Сподіваюся, це допомагає іншим. (Випуск, як у Android studio v2) Цей випуск призначений для емуляторів рук. У цьому прикладі я використовую API armeabi-v7a 16

Виправлення складається з трьох кроків:

Крок 1: Відкрийте sdk manager і переконайтесь, що ви встановили ARM EABI v7a System Image

Крок 2. Це очевидний випадок додавання розташування sdk до системних змінних.

Клацніть правою кнопкою миші на піктограмі "Цей ПК" на робочому столі, а потім

Properties -> Advanced system settings -> Environment Variables... Потім додайте шлях до sdk як новий до розділу системних змінних, використовуючи ім’я змінної ANDROID_SDK_ROOT.

Крок 3. Перезапустіть Android Studio для реєстрації змін. Після виправлення ANDROID_SDK_ROOTневизначеної проблеми емулятор все ще не може знайти файли ядра, хоча бачить, що менеджер 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\

(тобто \ 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 Studio і знову відкрити її) Дайте емулятору трохи часу, оскільки він у 10 разів повільніший порівняно з x86. (Мій зайняв приблизно 5 хвилин)


Е, де "config.ini для вашого емулятора"?
Джей

Android Studio -> AVD Mananger -> "Показати на диску". Редагування відповіді.
Асі Муграбі

Це відповідь, яка насправді зробила трюк для мене, у моєму випадку це був мій відредагований рядок:image.sysdir.1=system-images\android-16\default\armeabi-v7a
yvesmancera

Це зробило для мене фокус для емулятора Nexus 4. Довелося оновити image.sysdir.1до `system-images \ android-15 \ google_apis \ armeabi-v7a`
гілочка

10

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


5

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

Працюючи в Android Studio, використовуючи всі інтегровані інструменти, мені стало природно не використовувати старі менеджери (AVD / SDK).

У моєму випадку у мене була ця проблема, коли я використовував новий (інтегрований) AVD Manager для створення пристроїв зі старими системними образами (API 11 і нижче, як я тестував).

Коли я спробував використати старий інструмент AVD Manager (розташований у <AndroidSDK>\AVD Manager.exe) для створення цих старих образів пристроїв, я мав успіх.


2
Дякую за пропозицію - здається, автономний інструмент знає, як налаштувати речі для старих платформ. На OS X / MacOS: ~/Library/Android/sdk/tools/android avd.
neuralmer

4

Ей, якраз натрапив на ту ж проблему, що і ти, 3-е посилання в Google привело мене до цього фрагмента коду, який видає помилку,

if (kernelFile == NULL) {
        kernelFile = avdInfo_getKernelPath(avd);
        if (kernelFile == NULL) {
            derror( "This AVD's 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 ", то автоматично змініть тип процесора *. Це поганий підхід до управління конфігурацією *, але повинен дозволити нам пройти побудову системних зображень ARMv7 * з попередньою передачею dex "

Тож я повернувся і завантажив версію x86 intel atom для бажаного рівня API і зміг підняти емулятор без помилок. Сподіваюся, це допоможе і вам .....


2

Зазвичай помилка виникає через невідповідний емулятор AVD для типу програми, для якої ви розробляєте. Наприклад, якщо ви розробляєте програму для носіння, але намагаєтесь використовувати емулятор телефону для її запуску.


2

У мене була та ж помилка. Рішенням для мене було змінити шлях ANDROID_HOME . Спочатку я подивився інструменти-> android-> менеджер sdk з Android Studio. У цьому вікні ми можемо побачити шлях, де Android Studio шукає SDK: image

Потім я відкрив оболонку CMD Windows, виконавши:

echo %ANDROID_HOME%

але шлях відрізнявся від шляху в КОНФІГУРАЦІЇ СТУДІЙ ANDROID першого кроку.

Рішенням було змінити середовище користувача, ANDROID_HOME, до першого кроку: image

Нарешті я закрив оболонку cmd і відкрив ще одну оболонку cmd для виконання:

echo %ANDROID_HOME%

шлях був оновлений, і я міг чудово запустити свій емулятор.


1

У моєму випадку (Windows 10) причиною було те, що я наважився розпакувати андроїд sdk у папку, яка не використовується за замовчуванням. Коли я перемістив його до типового c: / Users / [ім'я користувача] / AppData / Local / Android / Sdk і змінив шляхи в Android Studio та System Variables, він почав працювати.


1
  • Відкрийте студію Android.
  • Перейдіть до налаштування> Налаштування системи> Android SDK
  • Отримайте "Розташування Android SDK".
  • Встановіть для цього значення змінну середовища ANDROID_SDK_ROOT.

Це спрацювало для мене, і я працюю на Windows 10 та Android studio 2.3.3


1
  1. Перейдіть до розділу "Редагування змінних системного середовища".
  2. Клацніть на Нову кнопку та введіть "ANDROID_SDK_ROOT" в ім'я змінної та введіть повний шлях android sdk у значення змінної. Натисніть кнопку ОК і закрийте.
  3. Оновіть AVD.
  4. Це дозволить усунути помилку.

-1

Загальноприйнятий підхід для вирішення цієї проблеми.

1. ПЕРЕВІРІТЬ свій менеджер SDK, запустивши з вашої андроїд-студії і стоячи alons sdk папку, виконавши ./android.shдопоможе вам знайти зламані пакети

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

  2. Експеримент з віртуалізації на основі KVM, запропонований Google для Linux

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.