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 se mudó .android
a otro lugar, configure la ANDROID_SDK_HOME
variable de entorno 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.
También verifique 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 ANDROID_SDK_ROOT
variable. 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 del SDK tiene al menos 4 de estos 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.
Ve <user_home>/.android/avd/<avd_name>
y abre config.ini
. Encuentra la image.sysdir.1
propiedad. Apunta al directorio, dentro del directorio SDK, que contiene la imagen real del sistema. Asegúrese de que este directorio exista y contenga archivos como build.prop
, system.img
etc. Si no es así, debe abrir el Administrador de SDK y descargar las imágenes del sistema que requiere su AVD (consulte a continuación).
Si todo está configurado correctamente, cuando estos errores ANDROID_SDK_ROOT
deben desaparecer. Si no lo están, entonces puede intentar configurar la ANDROID_SDK_ROOT
variable.
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 una versión independiente SDK Manager.exe
. En su lugar, debe usar Android Studio o tools\bin\sdkmanager.bat
(Linux / MacOS probablemente tenga sh
archivos).
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 qcow2
archivos 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 qcow2
archivos uno por uno usando cualquier editor HEX (prefiero HxD ), encuentre la ruta de un img
archivo base y cámbiela por la correcta en el Overwrite
modo (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 posición 13
:
PD: No estoy seguro, pero probablemente hay algunas utilidades como qemu-img que 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í :)