При переміщенні 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. Сподіваюсь так :)