¿Cómo borrar el caché de gradle?

Intento utilizar Android Studio, y la primera vez que lo reinicio, toma aproximadamente 45 MINUTOS para comstackr … Si no salgo de la aplicación, está bien, cada comstackción posterior / ejecución de la aplicación tomará como 45 segundos.

Intenté verificar algunos de mis cachés: hay una carpeta .gradle/caches en mi directorio de inicio, y tiene 123 MB de tamaño.

También hay una carpeta .gradle en la carpeta de mi proyecto … uno de los taskArtifacts era como 200 MB. Tengo miedo de lanzarles al azar a los dos. ¿Qué partes de las carpetas son seguras para eliminar?

¿Existe una mejor explicación de por qué mi Android Studio tarda una eternidad en ejecutar la tarea de gradle assemble primera vez que carga la aplicación?

¿También tengo que borrar la caché intellij también?

Puede eliminar de manera segura toda la carpeta .gradle ubicada en el directorio del proyecto. Se recreará cada vez que se ejecutan las tareas. Lo mismo es para .gradle en el directorio principal. También se recreará también, pero todas las dependencias deben descargarse de nuevo, es bastante lento.

Como veo en varios lugares sobre el gradle web para el desarrollo de Android es bastante lento y la gente se queja al respecto. Ni idea de qué es la razón exactamente: así es como funciona.

No creo que el bajo rendimiento se deba a las grandes carpetas. En realidad, lo ayudan a ser más rápido.

Como señaló @ Bradford20000 en los comentarios, puede haber un archivo gradle.properties así como scripts de gradle globales ubicados en $HOME/.gradle . En tal caso, se debe prestar especial atención al eliminar el contenido de este directorio. El directorio de caché contiene el caché de comstackción de Gradle . Entonces, si tiene algún error al respecto, puede eliminar eso. Está en .gradle/caches

Puedes hacerlo en Android Studio

Para limpiar las cachés del sistema:

En el menú principal, elija Archivo | Invalidar caches / reiniciar Aparece el mensaje Invalidar caches que le informa que las cachés se invalidarán y se reconstruirán el próximo inicio. Use los botones del cuadro de diálogo para invalidar los cachés, reinicie IntelliJ IDEA o ambos.

https://www.jetbrains.com/idea/help/cleaning-system-cache.html

Actualización: el método anterior borrará la caché de Android Studio, no la caché de Gradle . El caché Gradle se ubica en

  • En Windows: %USER_HOME%\.gradle/caches/
  • En Mac / Unix: $HOME/.gradle/caches/

Puede navegar a estos directorios y eliminarlos manualmente o ejecutarlos

 rm -rf $HOME/.gradle/caches/ 

en el sistema Unix. Ejecutar este comando también obligará a descargar dependencias.

Actualización 2: borre la caché de comstackción de Android del proyecto actual

Nota: Archivo de Android Studio | Invalidar cachés / reiniciar no elimina la caché de comstackción de Android, por lo que tendrá que limpiarlo por separado.

En Windows:

 gradlew cleanBuildCache 

En Mac o Linux:

 ./gradlew cleanBuildCache 

La solución más nueva usando la tarea gradle

cleanBuildCache

disponible a través del complemento de Android para Gradle, revisión 2.3.0 (febrero de 2017)

Dependencias:

  1. Gradle 3.3 o superior.
  2. Build Tools 25.0.0 o superior.

mas en:

https://developer.android.com/studio/build/build-cache.html#clear_the_build_cache

fondo

Construir caché:

almacena ciertas salidas que el complemento de Android genera al construir su proyecto (como AAR sin empaquetar y dependencias remotas predefinidas). Sus comstackciones limpias son mucho más rápidas mientras usa el caché porque el sistema de comstackción puede simplemente reutilizar esos archivos en caché durante comstackciones posteriores, en lugar de volver a crearlas. Los proyectos que usan el complemento Android 2.3.0 y superior utilizan la memoria caché de comstackción de forma predeterminada. Para obtener más información, lea Mejorar la velocidad de comstackción con Build Cache.

Nota: La tarea cleanBuildCache no está disponible si deshabilita la caché de comstackción.

uso:

ventanas

 gradlew cleanBuildCache 

linux / mac

 gradle cleanBuildCache 

Android Studio / IntelliJ

 gradle tab (default on right) select and run the task or add it via the configuration window 

** gradle / gradlew son archivos específicos del sistema que contienen scripts; consulte la información del sistema sobre cómo ejecutar el script

  1. Linux – https://www.cyberciti.biz/faq/howto-run-a-script-in-linux/
  2. Windows – https://technet.microsoft.com/en-us/library/bb613481(v=vs.85).aspx
  3. mac https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/index.html

El daemon gradle también crea muchos archivos de texto grandes de cada registro de comstackción. Se almacenan aquí:

~/.gradle/daemon/XX/daemon-XXXX.out.log

“XX” es la versión gradle en uso, como “4.4” y “XXXX” son solo números aleatorios, como “1234”.

El tamaño total puede crecer a varios cientos de MB en solo unos pocos meses . No hay forma de deshabilitar el registro, y los archivos no se eliminan automáticamente y realmente no necesitan ser retenidos.

Pero puede crear una pequeña tarea gradle para eliminarlos automáticamente y liberar mucho espacio en disco:

Agregue esto a su app/build.gradle :

 android { buildTypes { ... } // Delete large build log files from ~/.gradle/daemon/XX/daemon-XXX.out.log // Source: https://discuss.gradle.org/t/gradle-daemon-produces-a-lot-of-logs/9905 def gradle = project.getGradle() new File("${gradle.getGradleUserHomeDir().getAbsolutePath()}/daemon/${gradle.getGradleVersion()}").listFiles().each { if (it.getName().endsWith('.out.log')) { // println("Deleting gradle log file: $it") // Optional debug output it.delete() } } } 

Para ver qué archivos se están eliminando, puede ver la salida de depuración en Android Studio -> Ver -> Herramienta Windows -> Crear. Luego presione el botón “Alternar vista” en esa ventana para mostrar el resultado de texto.

Tenga en cuenta que una Gradle Sync o cualquier Gradle Build activará las eliminaciones de archivos.

Una mejor manera sería mover automáticamente los archivos a la Papelera / Papelera de reciclaje, o al menos copiarlos a la carpeta Papelera primero. Pero no sé cómo hacer eso.