il semble y avoir des informations incorrectes publiées ici. certaines personnes rapportent sur la façon de vider le cache du générateur Android (avec tâche cleanBuildCache
) mais ne semblent pas se rendre compte que ce cache est indépendant du cache de construction de Gradle, AFAIK.
ma compréhension est que le cache d'Android est antérieur (et inspiré) à Gradle, mais je peux me tromper. si le constructeur Android sera / a été mis à jour pour utiliser le cache de Gradle et retirer le sien, je ne sais pas.
EDIT: le cache du générateur Android est obsolète et a été supprimé. le plugin Android Gradle utilise désormais le cache de construction de Gradle. pour contrôler ce cache, vous devez maintenant interagir avec l'infrastructure de cache générique de Gradle.
CONSEIL: recherchez l'aide en ligne de Gradle sur le cache sans mentionner le mot clé 'android' pour obtenir de l'aide sur le cache actuellement pertinent.
EDIT 2: en raison de la question de tir38 dans un commentaire ci-dessous, je teste en utilisant un projet de plugin Android Gradle v3.4.2. le cache gradle est activé par org.gradle.caching=true
in gradle.properties
. je fais quelques clean build
et la deuxième fois la plupart des tâches montrent FROM-CACHE
leur statut, montrant que le cache fonctionne.
étonnamment, j'ai une cleanBuildCache
tâche gradle et un <user-home>/.android/build-cache/3.4.2/
répertoire, tous deux faisant allusion à l'existence d'un cache de générateur Android.
j'exécute cleanBuildCache
et le 3.4.2/
répertoire est parti. ensuite j'en fais un autre clean build
:
- rien n'a changé: la plupart des tâches s'affichent
FROM-CACHE
comme leur état et la construction est terminée à des vitesses activées pour le cache.
- le
3.4.2/
répertoire est recréé.
- le
3.4.2/
répertoire est vide (sauf pour 2 fichiers de marqueurs de longueur nulle cachés).
conclusions:
- la mise en cache de toutes les tâches normales du générateur Android est gérée par Gradle.
- l'exécution
cleanBuildCache
n'efface ni n'affecte en aucune façon le cache de génération.
- il y a toujours un cache de générateur Android. cela pourrait être un code résiduel que l'équipe de construction Android a oublié de supprimer, ou cela pourrait en fait mettre en cache quelque chose d'étrange qui, pour une raison quelconque, n'a pas ou ne peut pas être porté à l'aide du cache Gradle. (L'option «ne peut pas» étant hautement améliorable, à mon humble avis.)
Ensuite, je désactiver le cache Gradle en retirant org.gradle.caching=true
de gradle.properties
et j'essayer quelques clean build
:
- les builds sont lents.
- toutes les tâches affichent leur statut comme étant exécutées et non mises en cache ou à jour.
- le
3.4.2/
répertoire reste vide.
plus de conclusions:
- il n'y a pas de secours pour le cache du générateur Android lorsque le cache Gradle ne parvient pas à atteindre.
- le cache du générateur Android, au moins pour les tâches courantes, a en effet été supprimé comme je l'ai dit précédemment.
- le document android correspondant contient des informations obsolètes. en particulier, le cache n'est pas activé par défaut comme indiqué ici, et le cache Gradle doit être activé manuellement.
EDIT 3: l'utilisateur tir38 a confirmé que le cache du générateur Android est obsolète et a été supprimé avec cette découverte . tir38 a également créé ce problème . Merci!
Compiler -> Gradle
nonUse in-process build
. rien à voir avec le cache