El archivo APK no existe en el disco

224

Cuando intento la aplicación de depuración en Android Studio, aparece este registro de salida:

El archivo APK /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk no existe en el disco.

Reinicié Android Studio, pero no puedo resolver este problema. Cómo puedo resolverlo ? Gracias

sorunluadam
fuente
99
Cómo puedo resolverlo ? compilar un apk
Tim
1
@TimCastelijns Realmente me pregunto si Android Studio no es lo suficientemente inteligente como para incluir la tarea de creación de depuración apk en la tarea de aplicación de deb. Gradle debe hacerse para esto.
Trilarion
1
@Trilarion De forma predeterminada, AS ejecuta la tarea assembleDebug de gradle que compila un apk de depuración. Algo parece mal aquí, lo que requiere compilación manual
Tim
2
Agregar Gradle Make-Aware solucionó este problema por mí. stackoverflow.com/a/25871525/1712417
Iammesol
2
Intente agregar "Gradle Make-Aware" stackoverflow.com/questions/18256177/…
Andy Cheng

Respuestas:

463

Haga clic en esta opción para resolver el error:

Ejecutar: Ver> Windows de herramientas> Gradle> [proyecto]> Tareas> compilar> compilar

指尖 上 的 Android
fuente
66
Los caracteres especiales en el nombre del directorio de su proyecto también arrojarán este error.
NP
50
Esto no funcionó para mí en absoluto. Recomendaría respuestas que expliquen por qué se supone que funcionan en lugar de simplemente decirle al lector qué hacer, para que puedan comprender / evitar / resolver esos errores más adelante.
persona27
3
¿Podría explicar qué hace esto exactamente y por qué ocurrió este problema?
Hamidreza Sahraei
Por cierto, los "caracteres especiales" también incluyen números. Es ridículo, desperdició toneladas de tiempo en esto. facepalm :)
alexr101
55
Ese botón no existe en la última versión de Android Studio, pero creo que es la opción "Sincronizar proyecto con archivos Gradle", que funcionó para mí.
Nasch
208

Si tiene este problema después de la actualización a Android Studio V 3.1, intente lo siguiente.

Estaba enfrentando este mismo problema cuando actualicé a Android Studio 3.1. Todas las otras soluciones que encontré aquí fueron bastante manuales porque tienes que limpiarlas y reconstruirlas todo el tiempo, eso no es nada bueno. Pero gracias a la respuesta de Iman Marashi aquí pude resolverlo.

Vaya a Ejecutar -> Editar configuraciones ...

Asegúrese de tener una "Marca compatible con Gradle" en la sección Antes del lanzamiento:

Configuraciones de ejecución / depuración

Para agregarlo, haga clic en el signo + y seleccione Gradle-aware Make y aparecerá una ventana emergente, simplemente deje el campo de texto vacío y haga clic en Aceptar y Aceptar .

Siete
fuente
13
Esta es la solución para la reciente actualización 3.1. Para mí, el primer síntoma de este problema fue que el APK no "respondía" a los cambios en el código. Ahora está claro para mí que el nuevo APK no se estaba construyendo correctamente en absoluto.
David Gay
Esta respuesta puede resolver por mí. Actualicé 3.1 y recibí este error.
ZarNi Myo Sett Gana el
Tu señor es un salvavidas.
Joel Libby
¡GUAUU! ¡Te mereces 1000 votos para esto! ¡Android Studio merece 1000 votos negativos!
1QuickQuestion
Gracias, esta es definitivamente la respuesta correcta y debería ser la aceptada
Petar Marijanovic
68

En mi caso, la ejecución de "Sync Project with Gradle Files" ayudó. Ni reiniciar Andoid Studio ni borrar el caché hizo nada.

Bartek
fuente
1
Gracias. También me ayuda. Ni reiniciar Andoid Studio ni borrar el caché no ayudó.
ivan.panasiuk
Hice el truco para mí después de cambiar el script de nomenclatura que está en un archivo separado de mi normal build.gradle, por lo que Android Studio no detectó automáticamente el cambio y me solicitó que sincronice.
Magnus W
Esta es la verdadera respuesta.
azizbekian
3
File -> Sync Project with Gradle Files stackoverflow.com/a/19932896/2527204
Marlon
Tuve este problema al intentar ejecutar una prueba de unidad. Estaba pidiendo un dispositivo para ejecutar una prueba de Unidad.
Sergio
34

Si solo desea conocer la conclusión, vaya a la última sección. Gracias.

Por lo general, cuando el proyecto de construcción falla, algunos trucos comunes que podría probar:

  • Compilación -> Proyecto limpio
  • Comprobar variantes de compilación
  • Reinicie Android Studio (como mencionó)

Pero para ser más específico a su problema, cuando Android Studio no pudo encontrar el archivo APK en el disco. Significa que Android Studio ha creado con éxito el proyecto y también ha generado el APK, sin embargo, por alguna razón, Android Studio no puede encontrar el archivo.

En este caso, verifique el directorio impreso de acuerdo con el registro. Es útil.

Por ejemplo:

Con Android Studio 2.0 Preview (compilación 143.2443734).

  1. Pago a una confirmación específica (para que se separe de la cabeza): git checkout [commit_hash]
  2. Ejecutar proyecto
  3. Android Studio dice: El archivo APK / Users / MyApplicationName / app / build / salidas / apk / app-debug-HEAD.apk no existe en el disco
  4. Vaya al directorio, hay un archivo realmente llamado: app-debug- ( HEAD.apk (con un paréntesis adicional)
  5. Ejecuta git branch

    * (CABEZA separada en 1a2bfff)

Así que aquí puedes ver, debido al error de mi script de construcción de gradle , el nombre de archivo es de alguna manera incorrecto.

El ejemplo anterior es solo un escenario que podría conducir al mismo problema, pero no necesariamente ser la misma causa raíz que la suya.

Como resultado, le recomiendo que revise el directorio (para encontrar la diferencia) y que revise su script build.gradle (puede cambiar el nombre del apk allí, algo como a continuación):

applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def newFileName = "whatever you want to name it";
            def apk = output.outputFile;
            output.outputFile = new File(apk.parentFile, newFileName);
        }
    }
Jing Li
fuente
2
Mi problema fue que estaba agregando la versión de la aplicación en el nombre del APK, pero la versión de la aplicación tiene el formato xyz y el "." (punto) en la denominación estaba causando los errores. Así que no recuerdes otros puntos, excepto el anterior apk :)
DraganescuValentin
20

Asegúrate de no tener apóstrofe o & en tu camino

Rim Gazzah
fuente
El '&' era lo que me impedía compilar. Gracias @Rim Gazzeh
Marka A
19

Asegúrese de que haya configuraciones con reconocimiento de calificación en ejecución / depuración >> antes de la sección de inicio :

Me gusta esta imagen

Iman Marashi
fuente
17

Fui testigo de un problema similar por lo general cuando estoy cambiando las ramas de git. Para mí, cerrar Android Studio rm -rfv ~/Library/Caches/AndroidStudio*y reiniciar Android Studio es el boleto.

usuario213493
fuente
Mi problema similar fue resuelto por este método. Cambié el nombre de los archivos apk en la construcción de Gradle para agregar el número de versión al archivo, tratando de depurar mi actividad principal era intentar ejecutar el nombre de archivo apk incorrecto (número de versión anterior). No estoy seguro de cuándo comenzó esto, pero estaba funcionando bien hasta que no lo hizo.
David
Caché de estudio de Android es un gran problema!
GeekHades
Es. Acabo de (nuevamente) incrementar mi número de compilación, esto cambia el nombre del archivo apk, nuevamente tengo este problema.
David
13

En Android Studio 3.1.1 seleccione Archivo | Proyecto de sincronización con archivos Gradle.

En Android Studio 3, seleccione Archivo | Sincronizar.

Luego ejecute su proyecto nuevamente.

vive el amor
fuente
En Studio v3.1.1, Archivo -> Proyecto de sincronización con archivos Gradle. y estás listo para ir
Napolean
Luego, en un campo en la barra de herramientas superior (con icones), al lado del icono de martillo, debe devolver la 'aplicación', en el menú desplegable de configuración
CodeToLife
11

El año es 2018. La versión de Android Studio es 3.2.0 alpha3 y todavía tenemos este problema. Como ninguno de los anteriores funcionó para mí, aquí están mis 2 centavos:

Cada vez que esto sucede, solo genero el apk desde la línea de comandos:

gradlew assembleDebug

ACTUALIZAR

Eliminar la carpeta .AndroidStudio[version]y perder todas sus preferencias y cachés ... parece resolver el problema

Androiderson
fuente
1
pero esto solo funciona para una compilación? Si realiza más cambios y presiona el botón 'reproducir', simplemente empuja el viejo apk y no se reconstruye para los cambios. Tan molesto, ¿qué estaban pensando
Behelit
7

En mi caso, estaba usando un carácter especial en la ruta del archivo de mi aplicación. Cerré Android Studio y eliminé el ' carácter de la ruta del archivo de mi aplicación. Todo funcionó bien cuando volví a abrir el proyecto.

Código inmortal
fuente
Sí, idealmente, Android Studio debería ser lo suficientemente inteligente como para evitar que los usuarios usen caracteres especiales en su ruta de archivo. O mejor, debería haber seguido yo mismo las buenas prácticas de programación :)
Immortal Code
6

He resuelto crear un apk usando la opción Build desde la ventana superior y Build APK. No hay necesidad de hacer algo raro.

Mun0n
fuente
6

Para usuarios similares a Unix (Linux / MacOs X), en lugar de eliminar ~ / .gradle / caches /, en la línea de comandos, haga lo siguiente:

$ cd path_to_you_project
$ touch build.gradle

Luego, solicite a Android Studio que cree APK, restablecerá la caché de Gradle.

Jean-Marc Delafont
fuente
5

Mi problema es que estaba agregando el número de versión al APK. Cambiar el número de versión y volver a sincronizar Gradle solucionó el problema para mí.

def appendVersionNameVersionCode(variant, defaultConfig) {
    variant.outputs.each { output ->
        if (output.zipAlign) {
            def file = output.outputFile
            def removeApp = file.name.replace("app-", "")
            def removeType = removeApp.replace("-release", "")
            def fileName = removeType.replace(".apk", "." + defaultConfig.versionName + ".apk")
            output.outputFile = new File(file.parent, fileName)
        }

        def file = output.packageApplication.outputFile
        def removeApp = file.name.replace("app-", "")
        def removeType = removeApp.replace("-release", "")
        def fileName = removeType.replace(".apk", "." + defaultConfig.versionName + ".apk")
        output.packageApplication.outputFile = new File(file.parent, fileName)
    }
}
Lou Morda
fuente
¿Has llamado appendVersionNameVersionCode en gradle?
Dhrupal 01 de
3

Build ---> Build APK (s) y asegúrese de que funcione

Kadir altınok
fuente
2

Archivo -> Invalidar cachés / reiniciar

dvrm
fuente
2

Si probó todas las respuestas anteriores y no funcionó, intente deshabilitar la función "Ejecución instantánea". Este me ayudó después de todos los intentos.

Archivo -> Configuración -> Compilación, ejecución, implementación -> Ejecución instantánea -> Desmarque la casilla de verificación allí

AnZ
fuente
2

También tuve ese problema, después de limpiar la compilación. Para mí, la solución fue simplemente sincronizar el gradle y funcionó para mí.

u_pendra
fuente
2

En mi caso, el problema era que la configuración de depuración deja de ser válida alguna manera, incluso si el nombre, clase o paquete del método de prueba no ha cambiado.

Eliminé las configuraciones de Ejecutar-> Editar configuraciones, aquí:

ingrese la descripción de la imagen aquí

Android Studio creará uno nuevo automáticamente.

MiguelSlv
fuente
Luego debe hacer clic en Archivo / Reimportar proyecto Gradle. Esto recreará la configuración de ejecución eliminada.
Juan Ignacio Barisich
1

Enfrenté el mismo problema con gradle 1.5

Tuve que limpiar los archivos de compilación:

Compilación -> Proyecto limpio

Y cree un APK para forzar la compilación y sincronización completas de los archivos gradle:

Build -> Build APK

Aún no sé por qué ni cómo sucedió.

Simon PA
fuente
1

Si está utilizando Linux, intente configurar el permiso de escritura en la carpeta app / build.

Catalin Clabescu
fuente
1

Yo tuve el mismo problema. se debió a un nombre falso en el camino. había un carácter especial en la ruta como este: C: \ Usuario \ Mi aplicación \ Projekte-Tablet & Handy eliminé el carácter "&" y funcionó bien.

Orientos
fuente
1

Mi problema fue incluir minutos en el nombre del archivo: buscaba appname_debug_0.9.0.1_170214_2216.apk cuando el archivo generado era appname_debug_0.9.0.1_170214_2217.apk, por lo que el código de nombre de archivo de salida (capturado desde otro lugar) se llamaba claramente desde dos puntos diferentes En la construcción.

applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def project = "appname"
            def SEP = "_"
    //        def flavor = variant.productFlavors[0].name
            def buildType = variant.variantData.variantConfiguration.buildType.name
            def version = variant.versionName
            def date = new Date();
            def formattedDate = date.format('yyMMdd_HHmm')

            def newApkName = project + SEP + /*flavor + */ SEP + buildType + SEP + version + SEP + formattedDate + ".apk"

            output.outputFile = new File(output.outputFile.parent, newApkName)
        }
    }
Ian Spencer
fuente
¿De dónde es este bloque?
Nerius Jok
Era de algún otro hilo de intercambio de pila de cuando estaba configurando el proyecto por primera vez (y tenía muy poca idea de lo que estaba haciendo, nada cambió allí). Como esta parte de Gradle ha sido cambiada varias veces, es probable que ahora sea un código obsoleto.
Ian Spencer
1

El problema para mí fue que de alguna manera realmente no podía encontrar el apk, mientras que el apk existe.

The APK file /Users/Paul/AndroidStudioProjects/android-tv-launcher/ui/build/outputs/apk/nameofapk.apk does not exist on disk.
Error while Installing APK

Todo lo que tenía que hacer era hacer clic derecho en la ruta relativa de apk-copy, y simplemente

adb install -r <paste of relative path>

Y el apk fue instalado y listo. Este problema ocurrió en OSX para mí.

Boldijar Paul
fuente
1

Resuelto en mayo de 2018 con el nuevo Android Studio 3.1. Elimine los directorios .gradle, .idea y build dentro de la carpeta de su aplicación. Luego intente ejecutarlo nuevamente y no verá el error.

Gerardo Suárez
fuente
1

Sincronizar, limpiar, reconstruir e invalidar caché y reiniciar

Ninguno de ellos funcionó para mí.

Eliminé los archivos APK y output.json en la carpeta de lanzamiento y la carpeta de depuración y luego intenté sincronizar, limpiar y compilar, luego funcionó bien.

GiridharaSPK
fuente
0

Cambio el archivo build.gradle una pequeña información y hago clic en "Sincronizar ahora", simplemente está bien.

凤 清 云
fuente
0

Elimine el directorio ~ / .gradle / caches /. Está bien hacer esto mientras Android Studio está abierto. (Consulte pm instalando un nombre de paquete incorrecto) Presione el icono "Sincronizar proyecto con archivos Gradle" en Android Studio Ejecute el proyecto y la ruta remota será correcta.

Consulte la respuesta @ Android Studio obtiene un nombre de paquete incorrecto cuando ejecuta .apk

máscara
fuente
0

Asegúrese de que en la ruta generada en sus registros, en su caso:

/Users/MyApplicationName/app/build/outputs/apk/app-debug.apk

La carpeta "salidas" tiene una carpeta "apk".

Ese fue mi problema, si no está allí, deberá ejecutar la tarea "assembleRelease" en gradle siguiendo la captura de pantalla siguiente;

Pasos para ejecutar la tarea Gradle assembleRelease Entonces se generará la carpeta.

Amgad
fuente
0

Nada de lo anterior me ayudó, pero descubrí esto al cambiar a otro sabor en el panel Herramientas de compilación y luego volver al que necesitaba.

Dmytro Karataiev
fuente
0

modifique el archivo: build.gradle (directorio de la aplicación). de hecho: no debe cambiar este archivo, solo con esto para obtener consejos de sincronización, luego sincronizar el proyecto.

兰 坡 阳
fuente