El archivo APK no existe en el disco
Cuando estoy intentando la aplicación de depuración en Android Studio da este resultado de registro:
El archivo APK /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk no existe en el disco.
- ¿Es posible descompilar un archivo .apk de Android?
- Actividad de Android bajo Eclipse / ADT con dependencias de proyecto (Error en la resolución de XY)
- ¿Dónde encontrar / configurar 'Artifact' en Android Studio?
- ¿Cuál es la diferencia entre los archivos apklib y jar?
- Error de instalación de ADB con INSTALL_FAILED_TEST_ONLY
Reinicié Android Studio, pero no puedo resolver este problema. Cómo puedo resolverlo ? Gracias
- No se puede generar APK firmado en Android Studio, porque proguard-rules.txt está ausente
- SDK Manager: Error al instalar. SDK android platform 3.0 API 11, revisión 2
- Android build release apk en jenkins, sin guardar mi contraseña en texto plano
- Google Play Service da Advertencia cada vez para la versión
- Cómo obtener información de la aplicación o del paquete desde el archivo apk en la aplicación android en el entorno de Android
- Conversión de apk to dex
- Com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: No se pudo instalar todo
- Android Analyze APK
Haga clic en esta opción para solucionar el error:
Si sólo desea saber la conclusión, vaya a la última sección. Gracias.
Por lo general, cuando falla el proyecto de construcción, algunos trucos comunes que podría probar:
- Construir -> Proyecto Limpio
- Comprobar variantes de construcció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. Esto significa que Android Studio realmente ha construido el proyecto con éxito, y también ha generado el APK, sin embargo, por alguna razón, Android Studio no puede encontrar el archivo.
En este caso, compruebe el directorio impreso según el registro. Es útil.
Por ejemplo:
Con Android Studio 2.0 Vista previa (build 143.2443734).
- Checkout a un commit específico (para que se desvincule de la cabeza): git checkout [commit_hash]
- Ejecutar proyecto
- Android Studio dice: El archivo APK / Users / MyApplicationName / app / build / outputs / apk / app-debug-HEAD.apk no existe en el disco
- Vaya al directorio, hay un archivo realmente llamado: app-debug- ( HEAD.apk (con un paréntesis adicional)
-
Ejecutar git branch
* (CABEZA desprendida en 1a2bfff)
Así que aquí se podía ver, debido a mi error de script de construcción de gradle , nombre de archivo es de alguna manera equivocado.
Por encima del ejemplo es sólo un escenario que podría conducir a la misma cuestión, pero no es necesario ser la misma causa raíz como la suya.
Como resultado, le recomiendo encarecidamente que revise el directorio (para encontrar la diferencia) y compruebe su script build.gradle (puede cambiar el nombre del apk, algo como lo siguiente):
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); } }
En mi caso, la ejecución de "Proyecto de sincronización con archivos Gradle" ayudó. Ni reiniciar Andoid Studio ni borrar la memoria caché hizo nada.
Asegúrese de que no tiene apóstrofo ni & en su camino
Fui testigo de un problema similar por lo general cuando estoy cambiando las sucursales git. Para mí, apagar Android Studio rm -rfv ~/Library/Caches/AndroidStudio*
y reiniciar Android Studio es el ticket.
En mi caso, estaba usando un carácter especial en mi ruta de archivo de aplicación. Cerré el Android Studio y elimine el ' carácter de mi ruta de archivo de aplicación. Todo funcionó bien cuando reopned el proyecto.
He resuelto la construcción de un apk con la opción Construir de la ventana superior y construir APK. No hay necesidad de hacer algo raro.
Para usuarios como Unix (Linux / MacOs X), en lugar de eliminar ~ / .gradle / caches /, en la línea de comandos:
$ cd path_to_you_project $ touch build.gradle
Luego, pida a Android Studio que genere APK, restablecerá la caché gradle.
Mi problema es que estaba agregando el número de versión a la APK. Cambiar el número de versión y volver a sincronizar Gradle arregló 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) } }
Archivo -> Invalidate Caches / Restart
Yo tuve el mismo problema. Se debía a un nombre falso en el camino. Había un carácter especial en el camino como esto: C: \ Usuario \ Mi App \ Projekte-Tablet & Handy i eliminado el carácter "&" y funcionó bien.
Si ha intentado todas las respuestas anteriores y no funcionó, intente desactivar la función "Instant Run". Este me ayudó después de todos los intentos.
Archivo -> Configuración -> Construcción, Ejecución, Despliegue -> Ejecución instantánea -> Desmarque la casilla de verificación allí
También tengo ese problema, después de limpiar la construcción. Para mí la solución fue que sólo sincronizar el gradle y funcionó para mí.
Mi problema estaba incluyendo minutos en el nombre de archivo – él buscó appname_debug_0.9.0.1_170214_2216.apk cuando el archivo generado era appname_debug_0.9.0.1_170214_2217.apk así que el código del filename de la salida (nabbed de en otra parte) era claramente el ser llamado de dos diversos puntos 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) } }
Frente a la misma cuestión con gradle 1.5
Tuve que limpiar los archivos de compilación:
Construir -> Proyecto limpio
Y crear un APK para forzar la compilación y sincronización completas de los archivos gradle:
Construir -> Construir APK
Todavía no sé por qué o cómo sucedió tho.
Si está utilizando Linux, pruebe a configurar el permiso de escritura en la carpeta de la aplicación / compilación.
Cambio de archivo build.gradle un poco de información, y haga clic en "Sincronizar ahora", simplemente bien.
Quite el directorio ~ / .gradle / caches /. Está bien hacer esto mientras se abre Android Studio. (Consulte pm para instalar el nombre incorrecto del paquete) Pulse el icono "Sincronizar proyecto con archivos Gradle" en Android Studio Ejecute el proyecto y la ruta remota será correcta.
Refer answer @ Android Studio obtiene error en el nombre del paquete al ejecutar .apk
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 "outputs" tiene una carpeta "apk".
Ese era mi problema, si no está allí, necesitará ejecutar la tarea "assembleRelease" en gradle siguiendo la siguiente captura de pantalla;
A continuación, se generará la carpeta.
Nada de lo anterior me ayudó, pero me di cuenta de esto cambiando a otro sabor en el panel de herramientas de construcción y luego volver a cambiar a la necesaria.
Modifique el archivo: build.gradle (directorio de aplicaciones). De hecho: no debe cambiar este archivo, sólo por esto para obtener consejos de sincronización, a continuación, sincronizar el proyecto.
El botón se llama "Proyecto de sincronización con archivos Gradle" y se ve igual: … siempre tiene que hacer clic en él, al actualizar el número de versión, lo que resulta en otro nombre de archivo APK (a menos que el nombre de archivo no ha cambiado, la instalación del paquete siempre funciona, lo que indica, que el nombre de archivo se almacena en caché). La opción equivalente CLI Gradle parece ser --recompile-scripts
.
@ Vea el Apéndice D. Línea de comandos Gradle .
- Nunca he definido ninguna contraseña a mi almacén de claves y alias, así que ¿cómo se crean?
- Rectángulo de dibujo de lienzo de Android