No se puede iniciar AVD en el emulador: no se encontró la biblioteca QT

132

Soy nuevo en Android Studio y tengo problemas al usar el emulador. Cuando intento ejecutarlo, sigue fallando y dice:

"No se puede iniciar AVD en el emulador" [6816]: ERROR: ./ android / qt / qt_setup.cpp: 28: la biblioteca Qt no se encuentra en C: \ Users \ Jay \ AppData \ Local \ Android \ Sdk \ emulator \ lib64 \ qt \ lib

No se pudo iniciar 'C: \ Users \ Jay \ AppData \ Local \ Android \ Sdk \ emulator / qemu / windows-x86_64 / qemu-system-i386.exe': No existe tal archivo o directorio

He habilitado VT-x desde la configuración del BIOS, pero tengo el problema. He buscado mucho y no puedo encontrar una respuesta. Cualquier ayuda será muy apreciada. ¿Alguien puede darme una solución?

Captura de pantalla de error Instantánea de registro

Arrendajo
fuente
mira mi respuesta Funcionó perfectamente.
Uddhav Gautam

Respuestas:

157

Esto parece ser un problema relacionado con la actualización reciente. Una solución temporal es iniciar el emulador desde el /path/to/android-sdk/toolsdirectorio en la línea de comandos.

Consulte https://code.google.com/p/android/issues/detail?id=235461 para seguir el problema.

Vuong Pham
fuente
66
Estoy ejecutando el emulador desde Android / sdk / tools pero sigo recibiendo el error QT.
Gonzalo
3
Tuve el mismo problema y esta solución me funciona.
gontard
2
Últimas actualizaciones de ayer. Ejecutar desde el directorio <Android SDK> / tools funcionó para mí, pero también tengo / tools y / platform-tools en mi camino. Deberían arreglar esto.
Sean Aitken
13
El comentario n. ° 25 sobre el problema lo arregló para mí
Gregriggins36
1
Funcionó para mí, pero tuve que usar adicionalmente -use-system-libscomo argumento para el directorio emulatorubicado en herramientas .
Rany Albeg Wein
105

Todas las demás respuestas no me funcionaron, ya que "Android Emulator" no se instaló con una instalación estándar de Android Studio. Asegúrese de haberlo instalado y luego intente otras respuestas si es necesario.ingrese la descripción de la imagen aquí

Akshar Patel
fuente
2
Instalar "Emulador de Android" también lo arregló para mí. Después de eso pude iniciar el emulador nuevamente, pero recibí el siguiente error HAXM "unknown hax vcpu return 1". Simplemente reiniciar mi máquina finalmente resolvió todos los problemas. (Ver: stackoverflow.com/a/41867405/2350644 )
usuario2350644
2
instalar el emulador desde el interior de Android Studio también funcionó para mí. Ahora también puedo ejecutar Emulator desde la línea de comandos.
abhinavgoyal02
3
Realmente gracias, resolvió mi problema después de perder 3 horas :(
Hossam Ghareeb
1
Tuve el problema de iniciar el emulador en Mac. Solía ​​bloquearse después del inicio sin ningún mensaje. Tu propina me ayudó.
Rostyslav Roshak
3
Esto también me ayudó. Básicamente con mi nueva instalación de Android Studio, después de ejecutar actualizaciones e intentar iniciar una imagen en el emulador por primera vez. Este fue el error. Y sí, es bastante lógico que necesites tener el emulador instalado si quieres usarlo. Sería bueno si Android Studio solo dijera: "quieres ejecutar un dispositivo virtual en el emulador que proporcionamos, pero primero necesitas instalar este emulador, ¿quieres instalarlo ahora?" ....
morksinaanab
82

Para sistemas Linux o Mac, puede agregar lo siguiente a ~/.profile(o ~/.bashrc):

function emulator { cd "$(dirname "$(which emulator)")" && ./emulator "$@"; }

luego ejecute para cargar los cambios:

source ~/.profile

(o source ~/.bashrcpor supuesto)

Esto permitirá ejecutar emulatorhasta que solucionen el problema

(basado en el #10 yanokwacomentario de https://code.google.com/p/android/issues/detail?id=235461 )

J. Costa
fuente
intentado esto con el SDK Tools 25.3.1 y Ubuntu 16.10 y no hizo el trabajo, comenzó a recibir los errores libGL
vallllll
solía which emulatoren OSX para encontrar la carpeta
V-SHY
@vallllll Solo lo he probado en Mac, pero también debería funcionar en Linux. ¿Eres capaz de ejecutar en Android Studio?
J. Costa
77
En uso zsh en whence -plugar de which. También ponga cd ... && ...entre paréntesis para ejecutarlos en el subshell para evitar cambiar el directorio en el shell actual.
mixel
11
Puedo confirmar que funciona en linux y zsh con las modificaciones de @ mixel:function emulator { ( cd "$(dirname "$(whence -p emulator)")" && ./emulator "$@"; ) }
Andy Jones
63

He instalado el último Android Emulator 26.1.2 que ha resuelto este problema.

Por cierto, si en tu RUTA tienes ambas cosas:

  • C:\AndroidSDK\tools

  • C:\AndroidSDK\emulator

El emulatorcomando intentará usar emulator.exe dentro de la carpeta de herramientas, que no funciona.

Para resolver esto en su RUTA, debe moverse C:\AndroidSDK\emulator en la línea antes del directorio de herramientas, de esta forma se buscará primero el ejecutable del emulador dentro de la carpeta del emulador y tendrá prioridad sobre el presente en la carpeta de herramientas

MacOS: si tienes una Mac puedes moverte ~/Library/Android/sdk/emulatorantes ~/Library/Android/sdk/tools

MatPag
fuente
8
agregar el emulatordirectorio al camino me ayudó
Koen.
14
agregar ~ / Library / Android / sdk / emulator antes de ~ / Library / Android / sdk / tools también lo corrige en Mac OS
Jacob Wallström
3
Sí, usando Mac OS, puse el emulador frente a los demás en PATH y funciona
Aaron Gong
1
Gracias, agregar emulatorantes toolsen el camino funcionó para mí en Linux.
Vanessa Deagan
Gracias, agregué el camino a las variables de entorno y lo ordené de inmediato. Win10. También como se mencionó anteriormente, entrada del emulador antes de Herramientas.
Francois Muller
20

una solución simple es agregar este alias a su .bashrc .profileo equivalente

alias emu="$ANDROID_HOME/tools/emulator"

entonces source .bashrco .profilesimplemente abra una nueva terminal

finalmente ejecutar tu emulador será tan simple como emu -avd name

Amine Hakkou
fuente
2
+1 para el alias, que lo resolvió para mí. Sin embargo, no tengo ANDROID_HOME definido, así que simplemente reemplacé la ruta normal. No estoy seguro de por qué parece que la mayoría lo tiene y no ... Estoy en Mac.
TahoeWolverine
12

Los usuarios de Zsh pueden agregar:

function emulator { ( cd "$(dirname "$(whence -p emulator)")" && ./emulator "$@"; ) }

a .zshrc(o .zshenv).

Cargue los cambios en el shell actual obteniendo el archivo modificado:

source ~/.zshrc

Ahora puedes usar emulator comando en zsh.

Gracias a J. Costa por su respuesta bash.

Mixel
fuente
10

Tuve el mismo problema con el último Android Studio instalado ayer en Macbook.

Aunque el binario del emulador estaba disponible en la carpeta sdk / tools, el paquete del emulador de Android no estaba instalado. Seleccionando Android Emulator en Android Studio-> Preferencias-> Configuración del sistema-> Android SDK, descargué el paquete del emulador y lo instalé.

Después de la instalación del emulador, puedo iniciar el emulador.

Kumar
fuente
Tuve que reiniciar Android Studio después de hacer esto.
Adam Johns
Para Linux, vaya aTools -> Android -> SDK Manager -> SDK Tools -> Activate 'Android Emulator' -> OK
Mitja
La solución también funcionó para mí, @AdamJohns sin reiniciar;)
AamirR
7

En primer lugar, el hilo del problema en Google Issue Tracker ya estaba resuelto. Ya no tiene que configurar la variable de entorno LD_LIBRARY_PATHcomo una solución alternativa. Pero debe actualizar su SDK de Android y usar el ÚLTIMO emulator paquete (binarios). Sin tener eso, todavía verás lo molestoQT errores.

Entonces, es crucial asegurarse de que los paquetes SDK necesarios estén instalados para iniciar un emulador. Al instalar una imagen de emulador específica sdkmanager, no comprobará ni le pedirá que instale las dependencias requeridas. Cada vez que ve un error se queja ANDROID_SDK_ROOT, como PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOToPANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value , es exactamente por eso.

Entonces las otras 3 dependencias esenciales aparte de la imagen del emulador son:

  • platform-tools
  • platforms;android-<api_level>
  • emulator

Que puedes instalar a través de:

sdkmanager "platform-tools" "platforms;android-<api_level>" "emulator"

El api_leveles el mismo nivel de la API es su imagen emulador.

Jing Li
fuente
mhh llego PANIC: Missing emulator engine program for 'x86' CPU.también a donde debe el SDK_ROOTpunto? solo ANDROID_HOME?
kemuri
Me acabo de emulatorenterar ahora sdk/emulatory el de la herramienta causa ese error.
kemuri
5

Para aquellos que aún experimentan el problema incluso cuando ejecutan el comando desde el .../Sdk/toolsdirectorio, intente agregar el -use-system-libsargumento.

Por lo tanto, debe estar en el siguiente formato:

path/to/Sdk/emulator -use-system-libs -avd [AVD-NAME]

Para mí, aquí hay un ejemplo:

/home/cillian/Android/Sdk/emulator -use-system-libs -avd Nexus5

Cillian Myles
fuente
2
probé esto en mi ubuntu 16.10 y es lo único que funciona, solo estoy usando el emulador -use-system-libs -avd Pixel_XL_API_25.
vallllll
5

Tuve el mismo problema y lo resolví instalando el emulador porque de alguna manera las actualizaciones parecen haberlo eliminado. Hazlo desde las herramientas de Android Studio-> SDK manager. Espero que esto ayude

nkoroi
fuente
La reinstalación del emulador desde SDK Manager solucionó el error Qt, pero terminé teniendo otro problema con HAX. Usando Mac.
Gennon
Solucioné el problema de HAX al cerrar Docker en mi máquina. Tiene que iniciar el emulador desde el directorio de herramientas. O de lo contrario me sale el error Qt de nuevo.
Gennon
4

He instalado Android Studio 2.3.3 (hoy 2017-08-01) en Windows 10 x64

Mismo problema.

  • He instalado manualmente el emulador de Android Studio -> Herramientas -> Android -> Administrador de SDK -> Herramientas SDK -> Emulador de Android (versión 26.1.2)

  • Después de la instalación ... mismo problema

  • He agregado mi ruta desde la carpeta del emulador a mis variables de entorno antes de la ruta de herramientas (como en una respuesta anterior), pero sigue siendo el mismo problema.
  • Luego eliminé emulator.exe y emulator-check.exe de la carpeta de herramientas y resolví el problema.

MTK
fuente
3

Este problema parece solucionarse en Cordova versión 7.0.X

Si está utilizando Cordova versión 6.5.0 , puede solucionarlo fácilmente.

La raíz del problema está en el archivo emulator.js ubicado desde la raíz del directorio de su proyecto en ./platforms/android/cordova/lib/emulator.js

Simplemente actualice la siguiente línea (para mí fue la línea 205):

.spawn ('emulador', args, {stdio: 'heredar', separado: verdadero})

a

.spawn ('emulador', args, {stdio: 'heredar', detached: true, cwd: process.env ['ANDROID_HOME'] + '/ tools'})

Esto solucionará el problema relativo de ruta que está experimentando.

Además, hay una segunda solución necesaria para Cordova versión 6.5.0 en la línea 56. Simplemente suelte la letra "s" de la palabra " avds " en plural, para que sea " avd " singular.

Andre F
fuente
Solo para agregar eso a otros que leen esto es: si acaba de instalar el SDK a través de brew cash, debe reemplazar ANDROID_HOME con ANDROID_SDK_ROOT (a menos que también haya configurado el env ANDROID_HOME)
Lubricin
3

Estaba enfrentando este problema

  java.io.IOException: Cannot download 
 'https://dl.google.com/android/repository/emulator-windows-4266726.zip'

Actualicé a Studio 3.0 en Windows 10, mis emuladores dejaron de funcionar. Cosas que hice para arreglar,

Carpetas de instalación anteriores eliminadas de Android Studio como 2.0 y 2.1 presentes bajo mi nombre de usuario junto con la carpeta .AndroidStudio3.0 (dejándola intacta).

Se eliminaron los emuladores instalados previamente que de alguna manera dejaron de funcionar.

Descargado el archivo zip del emulador manualmente desde el enlace de arriba. Pegó su contenido en la carpeta del emulador de

       C:\Users\myusername\AppData\Local\Android\Sdk\emulator

¡Creé un nuevo emulador y lo comencé, Bingo! ¡¡está funcionando!!

Learner_Programmer
fuente
1
Este es el que finalmente hizo el truco para mí, excepto que no descargué desde el enlace, pero actualicé el emulador usando SDK Manager en Android Studio 3.0
yvesmancera
3

Siga estos pasos para resolver ese problema (Windows 10):

  1. Compruebe en el estudio de Android si instaló el emulador de Android; de lo contrario, instálelo.

  2. Compruebe en el estudio de Android si instaló Intel x86 Emulator Accelerator (instalador HAXM), si no, instálelo.

  3. En Variables de entorno => Variables del sistema, edite "Ruta". Necesita agregar esta línea para el emulador: %ANDROID_HOME%\emulatorantes %ANDROID_HOME%\toolsy%ANDROID_HOME%\platform-tools (El tercer paso fue una solución para mí).

nikola.maksimovic
fuente
2

Para Mac

Si has creado emuladores, prueba este código de shell:

#!/bin/bash
cd /Users/***/Library/Android/sdk/tools/
avds=`emulator -list-avds`
echo "show All emulators"
i=0
for item in $avds
do
    echo [$i] $item
    let i+=1
done
read index
avds=($avds)
# echo ${avds[$index]}
emulator -avd ${avds[$index]}

*** es tu nombre de usuario

usuario7725098
fuente
2

Mi estudio de Android está en el sistema operativo Windows. pero la mayoría de las respuestas en esta página no me funcionan.

pero lo descubro de una manera fácil.

En su IDE de estudio de Android, abra el [Administrador de SDK], verifique si ha descargado [Emulador de Android] y [Herramienta SDK de Android]

¿Cómo verificarlos?

[SDK Manager] -> [Apariencia y comportamiento] -> [Configuración del sistema] -> [Android Sdk] -> Aquí hay pestañas y elige la segunda [Herramientas de SDK]. luego marque [Emulador de Android] y [Herramienta SDK de Android].

Espero que te pueda ayudar.

¡Buena suerte!

Oscar Zhou1989
fuente
2

Veo que solo debe agregar a continuación en la ruta para poder iniciar el emulador

C:\Users\Ram\AppData\Local\Android\Sdk\platform-tools
C:\Users\Ram\AppData\Local\Android\Sdk\emulator.

Después de instalar Android Studio 3.0 y superior, veo que C:\Users\Ram\AppData\Local\Android\Sdk\emulator carpeta_emuladortiene los mismos archivos queC:\Users\Ram\AppData\Local\Android\Sdk\tools carpeta_herramientas

A la carpeta de herramientas le faltan algunos archivos, así que elimine la carpeta de herramientas de la ruta.

Puede usar los siguientes comandos del emulador para iniciar el emulador desde el símbolo del sistema:

emulator -list-avds

emulator @Pixel_2_XL_API_26 - Based on the avd that you have setup

comandos_emulador

Ram Sharma
fuente
1

La instalación del emulador de Android resolverá el problema ya que esta configuración no está habilitada de forma predeterminada en el estudio de Android. En Android Studio 3+ en adelante, no puede encontrarlo en Herramientas -> Android -> Administrador de SDK -> Herramientas SDK -> Emulador de Android, pero está en Archivo -> Configuración -> Apariencia y comportamiento -> Configuración del sistema -> SDK de Android -> Herramientas de SDK -> Emulador de Android

MD5
fuente
1

Acabo de resolver este problema para el escenario del emulador sin cabeza. Entonces, si revisé mi carpeta andrdoid_sdk, hay 2 emuladores ejecutables. El problema está sentado en la versión

${ANDROID_HOME}/emulator/emulator
version 29.3.4
no issue

y el segundo es

${ANDROID_HOME}/tools/emulator
version 26.0.3
QT issue

así que asegúrese de estar utilizando la última versión del emulador, especialmente si necesita un emulador sin cabeza como se indica en: https://androidstudio.googleblog.com/2019/02/emulator-2818-canary.html

surga
fuente
0

También puede abrir Herramientas> Administrador AVD desde Android Studio e iniciar el emulador manualmente.

ThinkDigital
fuente
Pensé que el OP se trataba de fallar a través de los menús de Android Studio. Para mí, la GUI funciona, pero no puedo hacer que la línea de comandos emulator -avd "Nexus_5X_API_27"funcione.
MarkHu
0

Puede haber errores / actualizaciones ocurridos en el sistema operativo subyacente. Entonces, en lugar de actualizar en .profile, /etc/environmento .bashrcarchivo a punto adb, emulatoretc., coloque (copie y pegue) toda la emulatorcarpeta dentro del /usr/bindirectorio. Este / usr / bin es apuntado por defecto por el sistema. Instale la adbherramienta desde la terminal. Esto debería resolver todo.

Y / O, actualice todas sus variables de entorno en el /etc/bash.bashrcarchivo. Tenga en cuenta que: /etc/bash.bashrcarchivo es lo que se ejecuta cada vez que abre el terminal bash.

Uddhav Gautam
fuente
0

Si está utilizando un contenedor Docker que ejecuta una imagen Ubuntu x86, puede que no sea posible ejecutar un emulador basado en x86 dentro de la imagen Docker. Recibirá el "Qt library not found"error o el "Please ensure KVM is properly installed and usable"error (más información aquí ).

Una alternativa es usar un emulador basado en ARM, que es más fácil de ejecutar, aunque son más lentos:

# Download an ARM emulator image
android-sdk/tools/bin/sdkmanager "system-images;android-24;default;armeabi-v7a"

# Create an ARM-based emulator AVD with 250 MB SD card
avdmanager create avd -n Android_7.0_API_24 -k "system-images;android-24;default;armeabi-v7a" -c 250M --force

# Check the image is properly created and available to run
android-sdk/emulator/emulator -list-avds

# Run the emulator
android-sdk/emulator/emulator -avd Android_7.0_API_24

Más información: https://medium.com/@AndreSand/android-emulator-on-docker-container-f20c49b129ef

Mr-IDE
fuente
0

Una solución que funcionó para mí que no he visto aquí antes es vincular android-sdk/emulator/emulatoraandroid-sdk/tools/emulator .

¿Tonto? ¿Genio? funciona para mi.

0atman
fuente
No funciona. Ya tengo el archivo en la ubicación especificada
Ashok Koyi
0

Lo arreglé simplemente agregando $ ANDROID_SDK_ROOT / emulator en $ PATH.

No sé por qué hay dos emuladores binarios exec en Android SDK. 1) en $ ANDROID_SDK_ROOT / tools 2) $ ANDROID_SDK_ROOT / emulator, pero el segundo me funcionó.

Estoy usando fish shellagregar la siguiente línea en ~ / .config / fish / config.fish.

set -x ANDROID_SDK_ROOT $HOME/Android/Sdk
set -x JAVA_HOME $HOME/android-studio/jre
set -x PATH $PATH $ANDROID_SDK_ROOT/emulator
set -x PATH $PATH $ANDROID_SDK_ROOT/tools
set -x PATH $PATH $ANDROID_SDK_ROOT/tools/bin
set -x PATH $PATH $ANDROID_SDK_ROOT/platform-tools
moondaddi
fuente
0

Me las arreglo para resolver este error. En mi variable de sistema necesito configurarANDROID_HOME

variable del sistema

Para mi variable de usuario, necesito ambas rutas

C:\Users\tonyhudson\AppData\Local\Android\Sdk\platform-tools
C:\Users\tonyhudson\AppData\Local\Android\Sdk\emulator

Recuerde eliminar C:\Users\tonyhudson\AppData\Local\Android\Sdk\toolsporque causará el error

variable de usuario

Tony Ngo
fuente
0

Cuando haya instalado solo Android SDK y no Android studio. Necesita encontrar la ruta del emulador y ejecutar con la ruta completa. Por ejemplo,

/ usr / local / share / android-sdk / tools / emulator @test

Esto debería resolver tu problema. Al menos esto es lo que funcionó para mí.

Senthil Kumar Vaithiyanathan
fuente
0

cd $ ANDROID_HOME / tools luego emulador --avd @whatever_name_it_is

Ravindra-Ravi Verma
fuente
0

Estoy trabajando en react-native y estaba enfrentando este problema, no pude abrir Emulator desde cmd que era realmente molesto porque tuve que abrirlo desde Android Studio, lo que me está tomando mucho tiempo.

Entonces, primero verifique si puede abrir el emulador ejecutando cmd en la Android\Sdk\emulatorcarpeta oAndroid\Sdk\tools si funciona en alguna de estas carpetas, ¡entonces esta solución es para usted! 😀

en mi caso, ejecutar cmd en ambas carpetas funcionaba pero si abría cmd en cualquier otra carpeta, mi emulador no funcionaría y a través de este error:

[14684]:ERROR:android/android-emu/android/qt/qt_setup.cpp:28:Qt library not found at ..\emulator\lib64\qt\lib
Could not launch 'C:\Users\Shehr\AppData\Local\..\emulator\qemu\windows-x86_64\qemu-system-x86_64.exe': No such file or directory

Entonces, cómo lo resolví sin perder mi tiempo:

  1. primero copie la ruta de la carpeta donde está funcionando el emulador en cmd, en mi caso fue Android\Sdk\emulator&&Android\Sdk\tools así que copiamos cualquiera de estas rutas!
  2. Edite las variables de entorno del sistema y agregue una nueva variable, escriba su ruta copiada en el valor y asígnele el nombre "EMULADOR" (o lo que quiera nombrar la variable).

Ahora simplemente ejecute el comando en cmd en cualquier carpeta como esta, %EMULATOR% -avd DEVICE_NAMEasí como nombramos nuestra variable, EMULATOR¡estaremos usando en %EMULATOR%lugar de emulator! Así es como el cmd apuntará al archivo emulator.exe correcto y funcionará.

Kashan Haider
fuente