При переміщенні AVD або SDK в інший каталог або заміні старого SDK на новий або виникне пошкодження SDK, може виникнути кілька різних проблем.
Нижче я опишу всі можливі проблеми, які я знаю, і дам вам кілька способів їх вирішення.
Звичайно, я припускаю, що у вас створено будь-який AVD, і він розташований у C:\Users\<user_name>\.android\avd
(Windows) або ~/.android/avd
(Linux / MacOS).
Якщо ви переїхали .android
в інше місце, то встановіть ANDROID_SDK_HOME
змінну середовища на шлях батьківського dir, що містить ваш, .android
і переконайтеся, що менеджер AVD успішно знайшов ваше віртуальне пристрій.
Також перевірте шляхи в <user_home>/.android/avd/<avd_name>.ini
Неповна / зіпсована структура SDK
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value
Ці 2 помилки трапляються, якщо емулятор не може знайти SDK або SDK зламаний.
Тож насамперед рекомендую взагалі видалити ANDROID_SDK_ROOT
змінну. Він потрібен лише тоді, коли емулятор знаходиться за межами каталогу SDK. Але загалом ваш емулятор залишається всередині режиму SDK. І в цьому випадку він повинен визначити місце розташування SDK автоматично . Якщо це не так, то, ймовірно, у вашому SDK є неправильна мережа. Будь ласка, виконайте наступне:
Переконайтеся , що каталог SDK має , по крайней мере , ці 4 директорії: emulator
, platforms
, platform-tools
, system-images
. Це дуже важливо! Ці каталоги повинні бути присутніми. Якщо деяких з них не існує, просто створіть порожні пані.
Ідіть <user_home>/.android/avd/<avd_name>
і відкрийте config.ini
. Знайдіть image.sysdir.1
майно. Він вказує на каталог, всередині каталогу SDK, який містить фактичне зображення системи. Переконайтеся, що цей каталог існує та містить такі файли, як build.prop
і system.img
т. Д. Якщо цього немає, потрібно відкрити диспетчер SDK та завантажити системні зображення, необхідні вашому AVD (див. Нижче).
Якщо все налаштовано належним чином, коли ці помилки з приводу ANDROID_SDK_ROOT
повинні бути втрачені. Якщо їх немає, то тепер ви можете спробувати встановити ANDROID_SDK_ROOT
змінну.
Необхідні пакети та HAXM не встановлені
Наступна проблема, з якою ви можете зіткнутися, полягає в тому, що емулятор починає запускатися, але зависає або вимикається негайно. Це, ймовірно, означає, що у вас не встановлені всі необхідні пакети.
Ще одна можлива помилка:
Не вдалося автоматично виявити бінарний файл ADB. Деякі функції емулятора не працюватимуть, поки на сторінку розширених налаштувань не буде доданий спеціальний шлях до ADB.
Отже, щоб успішно запустити будь-який AVD, ви повинні бути впевнені, що принаймні ці пакети встановлені:
emulator (Android Emulator)
platform-tools (Android SDK Platform-Tools)
tools (Android SDK Tools)
І, як я вже згадував раніше, ви повинні встановити системні зображення, наприклад, якими використовується AVD system-images;android-25;google_apis;x86
Зауважте, що останні версії SDK не мають самостійного використання SDK Manager.exe
. Замість нього вам потрібно використовувати Android Studio, або tools\bin\sdkmanager.bat
(можливо, у Linux / MacOS є sh
файли).
Щоб перелічити всі доступні пакети, використовуйте sdkmanager --list
абоsdkmanager --list --verbose
Для встановлення пакетів використовуйте sdkmanager <package1> <package2> ...
Також рекомендую встановити HAXM на вашу систему вручну.
Qcow2-файли стосуються невірних / неіснуючих базових зображень
Остання проблема, яку я зазначу, трапляється, коли ви намагаєтесь перенести AVD або SDK з одного комп'ютера або каталогу на інший. У цьому випадку ви можете отримати таку помилку:
qemu-system-i386.exe: -drive if = none, overlap-check = none, cache = небезопасно, index = 0, id = система, file = C:\Users\<old_user_name>\.android\avd\<avd_name>
.
avd \ system.img.qcow2, лише для читання: Не вдалося відкрити резервний файл: Не вдалося відкрити ' <old_sdk_dir>\system-images\android-22\google_apis\x86\system.img
': Неправильний аргумент
Є два способи виправити це:
Якщо вас не цікавлять дані, які містить AVD, просто видаліть усі qcow2
файли з каталогу AVD (наприклад, з <user_home>/.android/avd/<avd_name>
). У цьому випадку ви отримаєте чисту версію Android, як після жорсткого скидання.
Якщо дані емулятора для вас важливі, відкрийте всі qcow2
файли один за одним за допомогою будь-якого редактора HEX (я віддаю перевагу HxD ), знайдіть шлях базового img
файлу та змініть його на правильний у Overwrite
режимі (для збереження розмір файлу). Потім виберіть шлях і отримайте його довжину в шістнадцятковій формі (наприклад 2F
). 2F
являє собою косу рису ASCII /
. Поставте його в положення 13
:
PS: Не впевнений, але, мабуть, є деякі утиліти, такі як qemu-img, які дозволяють встановлювати різні базові зображення. Що ж, мені простіше вручну редагувати двійковий файл.
Тепер, напевно, ви зможете успішно запустити свій віртуальний пристрій Android. Сподіваюсь так :)