instalar - cordova-android npm
PĂNICO: Ruta del sistema AVD rota. Verifique su valor ANDROID_SDK_ROOT (23)
Después de escribir
cordova run android
en la terminal, obtengo este error:
Waiting for emulator to start...
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/Users/username/Library/Android/sdk]!
Esto sucede después de exportar:
export ANDROID_SDK_ROOT=''/Users/username/Library/Android/sdk''
Antes de exportar obtuve:
Waiting for emulator to start...
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
¿Alguna idea de dónde voy mal? Estoy seguro de que esta es la raíz de SDK, ¿por qué me sale la ruta del sistema AVD rota?
Eliminar el error al usar el SDK de Android de Homebrew como el SDK predeterminado
Como @EFreak instalé el android-sdk con homebrew (un administrador de paquetes para Mac).
Necesitaba hacer lo siguiente para corregir el error, porque estaba siguiendo los tutoriales nativescript y me encontré con el error.
Si desea que tenga la intención de usar la versión brew sobre la versión android-sdk, use esta respuesta (esto le permitirá usar nativescripts
tns run android
api), y si desea el android-sdk predeterminado de android studio, siga la respuesta de @ EFreak.
Configuración de Android Studio para usar los SDK de Android de Homebrew
Básicamente, solo necesita cambiar la ubicación del SDK de Android en el estudio de Android. Primero abra un proyecto en el estudio de Android. Luego abra el SDK Manager haciendo clic en este botón.
Luego, cuando aparezcan las preferencias predeterminadas para el administrador del SDK de Android, debe hacer clic en editar junto a la ubicación del SDK de Android.
Encontrar la ubicación del SDK de Android de Homebrew
A continuación, debe actualizar la ubicación de SDK en la pantalla de configuración de componentes SDK. Mi
brew
android-SDK se encuentra aquí
/usr/local/share/android-sdk
.
Puede encontrar dónde está instalado el suyo ejecutando
brew cask info android-sdk
luego cerca de la parte inferior de la salida debería decir:
You can control android sdk packages via the sdkmanager command.
You may want to add to your profile:
''export ANDROID_SDK_ROOT="/usr/local/share/android-sdk"''
El valor de la variable
export
ed
ANDROID_SDK_ROOT
(que aquí es
/usr/local/share/android-sdk
) es la ubicación de home-brew del android sdk.
Luego, debe hacer clic en el botón Ubicación del SDK de Android (etiquetado como 1 en la imagen) y pegarlo en la ubicación del SDK de Android de Homebrew.
Luego, termine el asistente instalando cualquier paquete. Necesitaba eliminar y volver a crear los emuladores de mi dispositivo en este paso, pero parecía funcionar muy bien después de eso.
Configuración de las variables de entorno del SDK de Android para que apunten al SDK de Android de Homebrew
También es posible que desee asegurarse de que si va por la ruta Homebrew, el script de configuración de su perfil tiene las variables de entorno
ANDROID_HOME
y
ANDROID_SDK_ROOT
establecidas en su ubicación Homebrew del sdk de Android; de lo contrario, lo anterior no funcionará todavía.
Esto se puede cambiar desde la ubicación de Homebrew si instaló Homebrew antes de instalar Android Studio como se señala
en esta respuesta
de
@Jamie Armor
.
Puede verificar que las variables de entorno para el sdk de Android estén configuradas correctamente ejecutando
echo $ANDROID_HOME
y
echo $ANDROID_SDK_ROOT
y verificando que ambas muestran la ubicación Homebrew del sdk de Android.
Si necesita cambiar los valores ANDROID_HOME y ANDROID_SDK_ROOT, puede hacerlo en la configuración de su perfil en su Mac, que probablemente estaría en algo como
~/.bash_profile
, "~ / .bashrc", o "~ / .profile" y se define como asi que:
export ANDROID_HOME="/usr/local/share/android-sdk"
export ANDROID_SDK_ROOT="/usr/local/share/android-sdk"
Debe cambiar los valores de ambas exportaciones a los valores correctos de la ubicación del SDK de Android de Homebrew y luego guardar el archivo.
Para verificar que se hayan escrito los valores correctos, primero debe cerrar y abrir su terminal, que debe volver a ejecutar el archivo y restablecer las variables de entorno o puede obtener el archivo ejecutando
source <profile file name>
donde está el archivo de perfil que editó y salvado.
Luego puede volver a ejecutar
echo $ANDROID_HOME
y
echo $ANDROID_SDK_ROOT
para verificar que tengan la ubicación de sdk de Android Homebrew.
Acabo de encontrarme con ese problema hoy y logré resolverlo.
Emulador: [140735565005632]: ERROR: android / android-emu / android / qt / qt_setup.cpp: 28: la biblioteca Qt no se encuentra en / Users / your_user_name / Library / Android / sdk / emulator / lib64 / qt / lib
15:08 Emulador: No se pudo iniciar ''/ Users / your_user_name / Library / Android / sdk / emulator / qemu / darwin-x86_64 / qemu-system-x86_64'': No existe tal archivo o directorio
La solución fue bastante simple. Simplemente instale el emulador de Android a través de Android Studio => herramientas => Android => SDK manager => SDK tools => seleccione Android Emulator => Apply
Estoy usando una MacBook Pro en macOS High Sierra, y creo que su máquina no tiene nada que ver con este problema. Obviamente, el emulador no se instala cuando se ejecuta el administrador de instalación de Android Studio por primera vez, al menos para mí, con Android Studio 3.0.1
También asegúrese de tener sus rutas definidas en su .bashrc o .zshrc de esta manera:
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
Acabo de tener el mismo problema en Mac y esto es lo que hice:
- Eliminé el android-sdk que instalé con brew
- Configuré la variable ANDROID_HOME para que sea la misma que ANDROID_SDK_ROOT = / Users / username / Library / Android / sdk
Compruebe si la imagen del sistema utilizada por su AVD se ha descargado en
$ANDROID_SDK_ROOT/system-images/
Debe agregar el emulador AVD. Ve a esta ubicación:
C:/Users/%username%/AppData/Local/Android/sdk/
inicie AVD Manager y en la segunda pestaña (Definiciones de dispositivos) haga clic en el botón "createAVD".
Después de bastante tiempo probando otras "soluciones" en Google, lo único que funcionó para mí, después de configurar la variable de entorno ANDROID_SDK_ROOT en Windows, y también de agregar y eliminar las variables ANDROID_HOME y ANDROID_SDK_HOME, fue la respuesta de Xerox23: editar la configuración AV.''s del AVD en código duro el valor de ANDROID_SDK_ROOT en la propiedad image.sysdir.1.
Esto estaba usando Android Studio 3.0.1 y el emulador 26.1.4, iniciando el dispositivo virtual desde el Administrador de AVD desde Android Studio.
En Mac: instalé
android-sdk
usando
brew
y Android Studio.
De alguna manera, tener 2 instalaciones estaba causando este problema.
Cuando desinstalé mi instalación brew del sdk usando
brew cask uninstall android-sdk
y agregué los siguientes vars a mi entorno.
Funcionó.
export ANDROID_HOME=/Users/<Username>/Library/Android/sdk
export ANDROID_SDK_ROOT=$ANDROID_HOME
En mi caso, estaba roto porque ANDROID_HOME y ANDROID_SDK_ROOT eran diferentes, por lo que una vez que configuré ANDROID_HOME para que fuera igual a ANDROID_SDK_ROOT, comenzó a funcionar.
Esto resolverá tu problema en 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
La respuesta de Oleg Cherrs me llevó a una solución. Como mencionó
Vaya a /.android/avd/ y abra config.ini. Encuentre la propiedad> image.sysdir.1. Apunta al directorio dentro del SDK que contiene el sistema> imágenes. Asegúrese de que este directorio exista y contenga archivos como build.prop,> system.img, etc. Si no es así, debe abrir el SDK Manager y> descargar las imágenes del sistema que requiere su AVD (consulte a continuación).
Encontré el emulador correspondiente * .ini en el directorio avd. Allí modifiqué la entrada "image.sysdir.1". Reemplacé el pariente con una ruta absoluta (agregue ANDROID_SDK_ROOT al frente). Después de eso, el emulador comenzó desde la línea de comandos como se esperaba.
Los errores realmente varían. Es útil ejecutar ./emulator con la opción -verbose, mostrará los errores reales.
Me encontré con este problema ya que he estado haciendo React Native desde los primeros días. Google ha desaprobado las herramientas de línea de comandos e insiste en el estudio de Android. La solución para mí fue eliminar las herramientas de línea de comandos
rm -rf /usr/local/Cellar/android-sdk
rm /usr/local/bin/android
abra AS instalar sdk v6 como se indica facebook.github.io/react-native/docs/…
crea un nuevo AVD y se lanzará sin error
Para la máquina de Windows: después de probar una gran cantidad de rutas establecidas, elimine la ruta, etc. Lo que finalmente funciona es ubicar la carpeta
C:/Users/johndoe/.android
y eliminarla.
después de eso, puede almorzar su Android Studio, le pedirá que descargue e instale un nuevo AVD y anulará y creará una nueva carpeta y archivos nuevos.
Esto resuelve el problema.
Para resolver este problema, tuve que instalar el paquete con la imagen del sistema faltante usando SDK Manager.exe (en "C: / Archivos de programa (x86) / Android / android-sdk"). Me di cuenta de que faltaba la imagen del sistema que necesitaba ("android-23") en "C: / Archivos de programa (x86) / Android / android-sdk / system-images".
Después de ejecutar SDK Manager.exe e instalar los paquetes apropiados, podría ejecutar el emulador en Android Studio.
Aquí está la solución que funcionó para mí:
https://www.embarcadero.com/starthere/xe5/mobdevsetup/android/en/creating_an_android_emulator.html
Puede haber varios problemas diferentes cuando mueve su AVD o SDK a otro directorio, o reemplaza un SDK antiguo por uno nuevo, o de alguna manera daña el SDK.
A continuación, describiré todos los posibles problemas que conozco y le daré varias formas de resolverlos.
Por supuesto, supongo que tiene un AVD creado, y se encuentra en
C:/Users/<user_name>/.android/avd
(Windows) o~/.android/avd
(Linux / MacOS).Si movió
.android
a otro lugar, configure la variable de entornoANDROID_SDK_HOME
en la ruta del directorio principal que contiene su.android
y asegúrese de que el Administrador de AVD haya encontrado con éxito su Dispositivo virtual.Compruebe también las rutas en
<user_home>/.android/avd/<avd_name>.ini
Estructura SDK incompleta / corrupta
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value
Estos 2 errores ocurren si el emulador no puede encontrar el SDK o si el SDK está roto.
Entonces, en primer lugar, recomiendo eliminar la variable
ANDROID_SDK_ROOT
.
Solo es necesario cuando el emulador se encuentra fuera del directorio SDK.
Pero en general, su emulador permanece dentro del directorio SDK.
Y en este caso, debe detectar la ubicación del SDK
automáticamente
.
Si no es así, entonces su SDK probablemente tenga un árbol de archivos incorrecto.
Por favor haga lo siguiente:
-
Compruebe que el directorio SDK tiene al menos estos 4 directorios:
emulator
,platforms
,platform-tools
,system-images
. ¡Es muy importante! Estos directorios deben estar presentes. Si algunos de ellos no existen, simplemente cree directorios vacíos. -
Vaya a
<user_home>/.android/avd/<avd_name>
y abraconfig.ini
. Encuentre la propiedadimage.sysdir.1
. Apunta al directorio, dentro del directorio SDK, que contiene la imagen real del sistema. Asegúrese de que este directorio exista y contenga archivos comobuild.prop
,system.img
, etc. Si no es así, debe abrir el SDK Manager y descargar las imágenes del sistema que requiere su AVD (consulte a continuación).
Si todo está configurado correctamente, cuando estos errores sobre
ANDROID_SDK_ROOT
deben desaparecer.
Si no lo están, ahora puede intentar configurar la variable
ANDROID_SDK_ROOT
.
Los paquetes requeridos y HAXM no están instalados
El siguiente problema que puede enfrentar es que el emulador comienza a iniciarse, pero se cuelga o se cierra inmediatamente. Eso probablemente significa que no tiene todos los paquetes necesarios instalados.
Otro posible error es:
No se pudo detectar automáticamente un binario ADB. Algunas funciones del emulador no funcionarán hasta que se agregue una ruta personalizada a ADB en la página de configuración extendida.
Por lo tanto, para iniciar con éxito cualquier AVD, debe asegurarse de que al menos estos paquetes estén instalados:
emulator (Android Emulator)
platform-tools (Android SDK Platform-Tools)
tools (Android SDK Tools)
Y como mencioné anteriormente, debe instalar las imágenes del sistema que usa su AVD, por ejemplo,
system-images;android-25;google_apis;x86
Tenga en cuenta que las versiones más recientes en SDK no tienen un
SDK Manager.exe
independiente. En su lugar, debe usar Android Studio otools/bin/sdkmanager.bat
(Linux / MacOS probablemente tenga archivossh
).Para enumerar todos los paquetes disponibles, use
sdkmanager --list
osdkmanager --list --verbose
Para instalar paquetes use
sdkmanager <package1> <package2> ...
También recomiendo instalar HAXM en su sistema manualmente.
Los archivos Qcow2 se refieren a imágenes base incorrectas / inexistentes
El último problema que mencionaré ocurre cuando intentas mover AVD o SDK de una computadora o directorio a otro. En este caso, puede obtener dicho error:
qemu-system-i386.exe: -drive if = none, overlap-check = none, cache = inseguro, index = 0, id = system, file =
C:/Users/<old_user_name>/.android/avd/<avd_name>
.avd / system.img.qcow2, solo lectura: no se pudo abrir el archivo de respaldo: no se pudo abrir ''
<old_sdk_dir>/system-images/android-22/google_apis/x86/system.img
'': argumento no válido
Hay 2 formas de solucionarlo:
-
Si no le importan los datos que contiene el AVD, simplemente elimine todos los archivos
qcow2
del directorio AVD (por ejemplo, de<user_home>/.android/avd/<avd_name>
). En este caso, obtendrá una versión limpia de Android, como después de un restablecimiento completo. -
Si los datos en el emulador son importantes para usted, abra todos los archivos
qcow2
uno por uno utilizando cualquier editor HEX (prefiero HxD ), encuentre la ruta de un archivoimg
base y cámbielo al correcto en el modoOverwrite
( para preservar el tamaño del archivo). Luego seleccione la ruta y obtenga su longitud en hexadecimal (por ejemplo,2F
).2F
representa la barra inclinada ASCII/
. Ponlo en la posición13
:
PD: No estoy seguro, pero probablemente hay algunas utilidades como qemu-img permiten configurar diferentes imágenes base. Bueno, para mí es más fácil editar manualmente el binario.
Ahora probablemente podrá iniciar con éxito su dispositivo virtual Android. Yo espero que sí :)
Siga los pasos a continuación, esto debería resolver su problema
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
Significa que su camino a las herramientas es incorrecto. Así es como se ve en una Mac usando brew. Cuidado con la versión.
export ANDROID_SDK_ROOT=''/usr/local/Cellar/android-sdk/24.4.1_1''
En su caso, parece que debería ejecutar esto:
export ANDROID_SDK_ROOT=''/Users/username/Library/Android/sdk''
Tuve el mismo problema en mi Windows10,
Resolvió mi problema siguiendo los pasos a continuación.
abra Android Studio
- Herramientas
- SDK Manager
- copiar la ubicación del SDK de Android
Ubicación del SDK de Android
establecer variable de entorno del sistema
ANDROID_HOME y ANDROID_SDK_ROOT
variable de entorno del sistema
Yo tuve el mismo problema. Eliminé el emulador de imagen en la carpeta .android / avd y luego instalé lib32stdc ++ 6:
sudo apt-get install lib32stdc++6
¡Entonces funciona! ¿Mágico?
ok, puedo ejecutar android desde cordova, cambié ANDROID_HOME a,
export ANDROID_HOME=/usr/local/opt/android-sdk
NativeScript
Para cualquier persona que tenga problemas para iniciar el emulador de Android a través de NativeScript, es probable que se hayan anulado los entornos ANDROID_HOME y ANDROID_SDK_ROOT.
La forma en que logré crear un problema para mí fue instalando Android Studio para generar un emulador diferente. Hice esto después de haber instalado Android SDK a través de Home Brew.
Entonces, si durante la instalación de NativeScript, seleccionó instalar Android SDK a través de HomeBrew, NativeScript configurará lo anterior de la siguiente manera:
ANDROID_HOME=/usr/local/share/android-sdk
ANDROID_SDK_ROOT=/usr/local/share/android-sdk
Posteriormente, la instalación de Android Studio anulará estos valores como:
ANDROID_HOME=/Users/[User]/Library/Android/sdk
ANDROID_SDK_ROOT=/Users/[User]/Library/Android/sdk
Entonces, naturalmente, hay un conflicto con el estudio de Android y la instalación de NativeScript / Brew del sdk de Android. Eliminar uno u otro y / o verificar que la variable env contenga la ruta correcta debería hacer que su emulador se inicie.
-
Faltaba el directorio de plataformas en / usr / local / share / android-sdk .
-
Creé un directorio vacío llamado plataformas que solucionó el problema.