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


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


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 .


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.


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);
        }
    }

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


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


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.


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.


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


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.


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.


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.


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)
    }
}

¿Has llamado appendVersionNameVersionCode en gradle?
Dhrupal 01 de


2

Archivo -> Invalidar cachés / reiniciar


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í


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í.


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.


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ó.


1

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


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.


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)
        }
    }

¿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í.


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.


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.


0

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



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.


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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.