it-swarm.com.ru

ПАНИКА: Сломанный путь системы AVD. Проверьте значение Android_SDK_ROOT

После ввода cordova run Android в терминале я получаю эту ошибку:

Waiting for emulator to start...
PANIC: Broken AVD system path. Check your Android_SDK_ROOT value [/Users/username/Library/Android/sdk]!

Это происходит после экспорта:

export Android_SDK_ROOT='/Users/username/Library/Android/sdk'

Перед экспортом я получил:

Waiting for emulator to start...
PANIC: Cannot find AVD system path. Please define Android_SDK_ROOT

Есть идеи, где я иду не так? Я уверен, что это корень SDK, так почему я получаю сломанный системный путь AVD?

73
d.boyd

При перемещении AVD или SDK в другой каталог или при замене старого SDK новым или при повреждении SDK может возникнуть несколько разных проблем.

Ниже я опишу все возможные проблемы, которые я знаю, и дам вам несколько способов их решения.

Конечно, я предполагаю, что у вас есть созданный AVD, и он находится в C:\Users\<user_name>\.Android\avd (Windows) или ~/.Android/avd (Linux/MacOS).

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

Также проверьте пути в <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, возможно, неверное файловое дерево. Пожалуйста, сделайте следующее:

  1. Убедитесь, что каталог SDK имеет как минимум следующие 4 каталога: emulator, platforms, platform-tools, system-images. Это очень важно! Эти каталоги должны присутствовать. Если некоторых из них не существует, просто создайте пустые каталоги.

  2. Перейдите к <user_home>/.Android/avd/<avd_name> и откройте config.ini. Найдите свойство image.sysdir.1. Он указывает на каталог внутри каталога SDK, который содержит фактический образ системы. Убедитесь, что этот каталог существует и содержит такие файлы, как build.prop, system.img и т.д. Если этого не произойдет, откройте SDK Manager и загрузите системные образы, необходимые для 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 = unsafe, index = 0, id = system, 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': неверный аргумент

Есть 2 способа это исправить:

  1. Если вас не волнуют данные, которые содержит AVD, просто удалите все файлы qcow2 из каталога AVD (например, из <user_home>/.Android/avd/<avd_name>). В этом случае вы получите чистую версию Android, как после полной перезагрузки.

  2. Если данные для эмулятора важны для вас, откройте все файлы qcow2 один за другим с помощью любого редактора HEX (я предпочитаю HxD ), найдите путь к базовому файлу img и измените его на правильный в режим Overwrite (для сохранения размера файла). Затем выберите путь и получите его длину в шестнадцатеричном формате (например, 2F). 2F представляет косую черту ASCII /. Поместите его в положение 13:

 Edit Android qcow2 files using HxD HEX editor

PS: Не уверен, но, вероятно, есть некоторые утилиты, такие как qemu-img , позволяющие установить другое базовое изображение. Ну, мне проще редактировать бинарный файл вручную.


Теперь вы, вероятно, сможете успешно запустить виртуальное устройство Android. Я надеюсь, что это так :)

90
Oleg Cherr

На Mac: Я установил Android-sdk, используя brew, а также Android Studio. Каким-то образом наличие 2 установок вызывало эту проблему. Когда я удалил мою установку brew sdk, используя brew cask uninstall Android-sdk, и добавил следующие переменные в мой env. Это сработало.

export Android_HOME=/Users/<Username>/Library/Android/sdk
export Android_SDK_ROOT=$Android_HOME
87
EFreak

Это означает, что ваш путь к инструментам неверен. Вот как это выглядит на Mac с использованием Brew. Следите за версией.

export Android_SDK_ROOT='/usr/local/Cellar/Android-sdk/24.4.1_1'

В вашем случае это выглядит так:

export Android_SDK_ROOT='/Users/username/Library/Android/sdk'
14
TechnoTim

Это решит вашу проблему в macOS:

pico ~/.bash_profile

export Android_HOME=/Users/$USER/Library/Android/sdk
export Android_SDK_HOME=/Users/$USER/Library/Android/sdk
export Android_AVD_HOME=/Users/$USER/.Android/avd
export PATH=${PATH}:$Android_HOME/tools:$Android_HOME/platform-tools:$Android_AVD_HOME

source ~/.bash_profile
8
cuasijoe
  • В каталоге/usr/local/share/Android-sdk отсутствует каталог Platfoms.

  • Я создал пустой каталог с именем платформы, который исправил проблему.

4
Olivier Maina

хорошо, я могу запустить Android из Cordova, я изменил Android_HOME на,

export Android_HOME=/usr/local/opt/Android-sdk
4
d.boyd

Вы должны добавить AVD Emulator . Перейдите по этому адресу:

C:\Users\%username%\AppData\Local\Android\sdk\

запустите AVD Manager и во второй вкладке (Определения устройств) нажмите на кнопку «Создать AVD».

3
Blagojce

У меня была такая же проблема в моей Windows10,
Решил мою проблему, выполнив следующие действия.
открыть Android Studio
- Инструменты
- SDK Manager
- скопировать Android SDK Местоположение
Расположение Android SDK
установить системную переменную среды
Android_HOME и Android_SDK_ROOT
системная переменная окружения

3
psaren

Просто столкнулся с этой проблемой сегодня и сумел ее решить.

Эмулятор: [140735565005632]: ОШИБКА: Android/android-emu/Android/qt/qt_setup.cpp: 28: Библиотека Qt не найдена в/Users/your_user_name/Library/Android/sdk/emulator/lib64/qt/lib

15:08 Эмулятор: не удалось запустить '/ Users/имя_пользователя/библиотека/Android/sdk/emulator/qemu/darwin-x86_64/qemu-system-x86_64': такого файла или каталога нет

Решение было довольно простым. Просто установите эмулятор Android через Android Studio => инструменты => Android => менеджер SDK => инструменты SDK => выберите эмулятор Android => Применить

Я использую MacBook Pro на MacOS High Sierra, и я считаю, что ваша машина не имеет ничего общего с этой проблемой. Эмулятор явно не устанавливается при первом запуске менеджера установки Android Studio, по крайней мере для меня, с Android Studio 3.0.1

Также убедитесь, что ваши пути определены в вашем .bashrc или .zshrc следующим образом:

export Android_HOME=/Users/your_user_name/Library/Android/sdk
export Android_SDK_ROOT=$Android_HOME
export PATH=$PATH:$Android_HOME/emulator
export PATH=$PATH:$Android_HOME/tools
export PATH=$PATH:$Android_HOME/platform-tools
2
IsNotDefined

Как и @EFreak, я установил Android-SDK с homebrew (менеджер пакетов для Mac). Мне нужно было сделать это, потому что я следовал инструкциям по nativescript. Если вы мне нравитесь, намереваетесь использовать версию brew вместо версии Android-SDK, используйте этот ответ (это позволит вам использовать nativescripts tns run Android api), и если вы хотите, чтобы Android-студия по умолчанию Android-sdk по умолчанию следовала ответу @ EFreak.

В основном вам просто нужно изменить местоположение Android SDK в Android Studio. Сначала откройте проект в Android-студии. Затем откройте SDK Manager, нажав эту кнопку.

 Android sdk manager button location

Затем, когда появятся настройки по умолчанию для менеджера SDK Android, вам нужно нажать кнопку «Изменить» рядом с расположением Android SDK.

 enter image description here

Затем вам нужно обновить местоположение SDK на экране настройки компонентов SDK, здесь находился мой brew Android-sdk /usr/local/share/Android-sdk.

 enter image description here

Затем просто завершите работу мастера, установив все пакеты. На этом этапе мне нужно было удалить и воссоздать эмуляторы моего устройства, но после этого все работало отлично.

2
John

В моем случае он был сломан, потому что Android_HOME и Android_SDK_ROOT были разными, поэтому, когда я установил Android_HOME таким же, как Android_SDK_ROOT, он начал работать.

2
jc12

Проверьте, загружен ли системный образ, используемый вашим AVD, под $Android_SDK_ROOT/system-images/

2
aleung

Чтобы решить эту проблему, мне пришлось установить пакет с отсутствующим образом системы, используя SDK Manager.exe (в «C:\Program Files (x86)\Android\android-sdk»). Я заметил, что нужный образ системы («Android-23») отсутствует в «C:\Program Files (x86)\Android\android-sdk\system-images».

После запуска SDK Manager.exe и установки соответствующих пакетов я смог запустить эмулятор в Android Studio.

Вот решение, которое сработало для меня:

https://www.embarcadero.com/starthere/xe5/mobdevsetup/Android/en/creating_an_Android_emulator.html

1
Glauber

Ответ Олега Черрса привел меня к решению проблемы. Как он упомянул

Перейдите в/.Android/avd/ и откройте config.ini. Найдите свойство> image.sysdir.1. Он указывает на каталог внутри SDK, содержащий system> images. Убедитесь, что этот каталог существует и содержит такие файлы, как build.prop,> system.img и т.д. Если этого не происходит, вам нужно открыть SDK Manager и> загрузить образы системы, необходимые для вашего AVD (см. Ниже).

Я нашел соответствующий файл эмулятора * .ini в каталоге avd . Там я изменил запись "image.sysdir.1". Я заменил родственника абсолютным путем (добавьте Android_SDK_ROOT впереди). После этого эмулятор запускался из командной строки, как и ожидалось.

1
Xerox23

У меня была та же проблема, которая после установки следующих переменных пути исчезла Примечание AVD Home path отличается от других трех.

 enter image description here

1
Hitesh Sahu

После довольно долгого времени, пробуя другие «решения» Googled, only вещь, которая работала для меня, после установки переменной среды Android_SDK_ROOT в Windows, а также добавления и удаления переменных Android_HOME и Android_SDK_HOME, была ответом Xerox23 - редактирование конфигурации AVD .ini, чтобы жестко закодировать значение Android_SDK_ROOT в свойство image.sysdir.1.

При этом использовались Android Studio 3.0.1 и эмулятор 26.1.4, которые запускали виртуальное устройство из AVD Manager из Android Studio.

0
AndrWeisR

Для Windows-машины: после того, как вы попытаетесь установить заданный путь, удалите путь и т.д Наконец, нужно найти папку C:\Users\johndoe\.Android и удалить ее. после этого вы можете пообедать в своей Android Studio, он попросит вас загрузить и установить новый AVD, и он переопределит и создаст новую папку и файлы. Это решит проблему.

0
Delino

У меня была та же проблема на Mac, и вот что я сделал:

  1. Я удалил Android-SDK, который я установил с Brew
  2. Я установил переменную Android_HOME такой же, как Android_SDK_ROOT =/Пользователи/имя пользователя/Библиотека/Android/SDK
0
allister

Я столкнулся с этой проблемой, так как я делал React Native с первых дней. Google устарел инструменты командной строки и настаивает на студии Android. Решение для меня было удалить инструменты командной строки

rm -rf /usr/local/Cellar/Android-sdk

rm /usr/local/bin/Android

откройте AS установить SDK v6 в соответствии с инструкциями https://facebook.github.io/react-native/docs/getting-started.html#1-install-Android-studio

сделайте новый AVD и он запустится без ошибок

0
Harry Moreno

Выполните следующие шаги, это должно решить вашу проблему

1.

export Android_HOME=/usr/local/Cellar/Android-sdk/24.4.1
export PATH=$PATH:$Android_HOME/tools:$Android_HOME/platform-tools:$Android_HOME/bin

2.

Go to Android studio preferences => Build, Execution, Deployment => Build Tools => Gradle => Android studio  => Enable embedded Maven Repository should be selected.

3.

Go to Android studio preferences => Appearance & Behavior => System Settings => Android SDK => Go to SDK Tools and select Android Emulator
0
Gampesh