Tuve problemas como este, especialmente al depurar activamente a través de mi teléfono; a veces tomó 27 minutos. Hice lo siguiente y tomé nota de la explicación debajo de cada uno: uno puede funcionar para usted:
- Cambié mi archivo gradle.properties (en Gradle scripts si tiene la vista del archivo del proyecto en la opción de Android O dentro de su carpeta de proyecto). Agregué esto porque mi computadora tiene algo de memoria de sobra: puede asignar diferentes valores al final dependiendo de las especificaciones de su computadora y los requisitos mínimos de Android Studio (Xmx8000m -XX: MaxPermSize = 5000m):
org.gradle.daemon = true
org.gradle.configureondemand = true
org.gradle.parallel = true
android.enableBuildCache = true
org.gradle.caching = true
org.gradle.jvmargs = -Xmx8000m -XX: MaxPermSize = 5000m -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8
- Esto no resolvió completamente mi problema en mi caso. Por lo tanto, también hice lo que otros habían sugerido antes: hacer que mi proceso de compilación fuera de línea:
Archivo -> Configuración / Preferencias -> Compilación, Ejecución, Implementación -> Gradle
Configuración global de Gradle (en la parte inferior)
Marque la casilla de verificación llamada: Trabajo sin conexión.
- Esto redujo el tiempo sustancialmente pero fue errático; a veces tomó más tiempo. Por lo tanto, hice algunos cambios en Instant Run:
Archivo -> Configuración / Preferencias -> Compilación, ejecución, implementación -> Ejecución instantánea
Marcado: Habilite la ejecución instantánea para el código de intercambio en caliente ...
Marcado: reiniciar la actividad en los cambios de código ...
El movimiento anterior también fue errático y, por lo tanto, traté de averiguar si el problema puede ser los procesos / memoria que se ejecutan directamente en mi teléfono y computadora. Aquí liberé un poco de memoria en mi teléfono y el almacenamiento (que estaba al 98% utilizado, hasta el 70%) y también en el administrador de tareas (Windows), aumentó la prioridad de Android Studio y Java.exe a High. Dé este paso con cautela; depende de la memoria de tu computadora.
Después de todo esto, mi tiempo de compilación mientras depuraba activamente en mi teléfono a veces se redujo a 1 ~ 2 minutos, pero a veces se disparó. ¡Decidí hacer un truco que me sorprendió al reducirlo a segundos en el mismo proyecto que me dio 22 - 27 minutos fueron 12 segundos !:
Conecte el teléfono para la depuración y luego haga clic en EJECUTAR
Después de que comience, desconecte el teléfono: la compilación debería continuar más rápido y generar un error al final que indica esto: Sesión 'aplicación': Error al instalar APK
Vuelva a conectar el teléfono y haga clic en EJECUTAR nuevamente ...
ALTERNATIVAMENTE
Si el script / función / método que estoy depurando es puramente JAVA, no JAVA-android, por ejemplo, probando una API con JSONArrays / JSONObjects, pruebo mis funciones / métodos java en Netbeans que pueden compilar un solo archivo y mostrar la salida más rápido y luego hacer cambios necesarios en mis archivos de Android Studio. Esto también me ahorra mucho tiempo.
EDITAR
Intenté crear un nuevo proyecto de Android en el almacenamiento local y copié todos mis archivos del proyecto anterior en el nuevo: java, res, manifest, gradle app y gradle project (con la última dependencia de gradle classpath). Y ahora puedo construir en mi teléfono en menos de 15 segundos.