Parece que hay información incorrecta publicada aquí. algunas personas informan sobre cómo borrar la memoria caché del generador de Android (con la tareacleanBuildCache
) pero no parecen darse cuenta de que dicha memoria caché es independiente de la memoria caché de compilación de Gradle, AFAIK.
Entiendo que el caché de Android es anterior (e inspirado) al de Gradle, pero podría estar equivocado. si el generador de Android será / fue actualizado para usar el caché de Gradle y retirar el suyo, no lo sé.
EDITAR: el caché del generador de Android está obsoleto y se ha eliminado. el complemento Android Gradle ahora usa el caché de compilación de Gradle. para controlar este caché, ahora debe interactuar con la infraestructura genérica de caché de Gradle.
SUGERENCIA: busque la ayuda de caché de Gradle en línea sin mencionar la palabra clave 'android' para obtener ayuda para el caché relevante actualmente.
EDIT 2: debido a la pregunta de tir38 en un comentario a continuación, estoy probando usando un proyecto de Android Gradle plugin v3.4.2. el caché de gradle está habilitado por org.gradle.caching=true
en gradle.properties
. Hago un par de clean build
y la segunda vez que la mayoría de las tareas se muestran FROM-CACHE
como su estado, lo que muestra que el caché está funcionando.
Sorprendentemente, tengo una cleanBuildCache
tarea gradle y un <user-home>/.android/build-cache/3.4.2/
directorio, ambos insinuando la existencia de una memoria caché de Android.
ejecuto cleanBuildCache
y el 3.4.2/
directorio se ha ido. a continuación hago otro clean build
:
- nada cambió: la mayoría de las tareas se muestran
FROM-CACHE
como su estado y la compilación se completó a velocidades habilitadas para caché.
- El
3.4.2/
directorio es recreado.
- el
3.4.2/
directorio está vacío (guarde para 2 archivos de marcador ocultos de longitud cero).
conclusiones:
- Gradle maneja el almacenamiento en caché de todas las tareas normales del generador de Android.
- la ejecución
cleanBuildCache
no borra ni afecta el caché de compilación de ninguna manera.
- Todavía hay un caché del generador de Android allí. esto podría ser un código vestigial que el equipo de compilación de Android olvidó eliminar, o podría almacenar algo extraño que, por cualquier motivo, no se ha transferido o no se puede transferir al caché de Gradle. (La opción "no se puede" es altamente mejorable, en mi humilde opinión).
siguiente, i desactivar el caché Gradle mediante la eliminación org.gradle.caching=true
de gradle.properties
e intento un par de clean build
:
- Las construcciones son lentas.
- todas las tareas muestran su estado como ejecutado y no almacenado en caché o actualizado.
- El
3.4.2/
directorio continúa vacío.
más conclusiones:
- no hay reserva de memoria caché del generador de Android para cuando la memoria caché de Gradle no alcanza.
- el caché del generador de Android, al menos para tareas comunes, de hecho se ha eliminado como dije antes.
- el documento relevante de Android contiene información desactualizada. en particular, la memoria caché no está habilitada de manera predeterminada como se indica allí, y la memoria caché de Gradle debe habilitarse manualmente.
EDIT 3: el usuario tir38 confirmó que el caché del generador de Android está obsoleto y se ha eliminado con este hallazgo . tir38 también creó este problema . ¡Gracias!
Compiler -> Gradle
que noUse in-process build
. nada que ver con el caché