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=truein gradle.properties. je fais quelques clean buildet la deuxième fois la plupart des tâches montrent FROM-CACHEleur statut, montrant que le cache fonctionne.
étonnamment, j'ai une cleanBuildCachetâ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 cleanBuildCacheet 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-CACHEcomme 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
cleanBuildCachen'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=truede gradle.propertieset 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 -> GradlenonUse in-process build. rien à voir avec le cache