J'essaie d'utiliser Android Studio, et la première fois que je le démarre, il faut environ 45 MINUTES pour compiler ... Si je ne quitte pas l'application, ça va - chaque compilation / exécution ultérieure de l'application prendra environ 45 secondes.
J'ai essayé de vérifier certains de mes caches: il y a un .gradle/caches
dossier dans mon répertoire personnel et il contient 123 Mo.
Il y a aussi un .gradle
dossier dans mon dossier de projet ... l'un taskArtifacts
était comme 200 Mo. J'ai peur de les neutraliser au hasard. Quelles parties des dossiers peuvent être supprimées en toute sécurité?
Existe-t-il une meilleure explication pour laquelle mon Studio Android prend une éternité pour exécuter la gradle assemble
tâche lors du premier chargement de l'application?
Dois-je également vider le cache intellij?
Compiler -> Gradle
nonUse in-process build
. rien à voir avec le cacheRéponses:
Comme @ Bradford20000 l'a souligné dans les commentaires, il pourrait y avoir un
gradle.properties
fichier ainsi que des scripts de gradle globaux situés sous$HOME/.gradle
. Dans ce cas, une attention particulière doit être portée lors de la suppression du contenu de ce répertoire.Le
.gradle/caches
répertoire contient leGradle
cache de génération. Donc, si vous avez une erreur concernant le cache de génération, vous pouvez le supprimer.la source
Le cache Gradle se situe à
%USER_HOME%\.gradle/caches/
~/.gradle/caches/
Vous pouvez parcourir ces répertoires et les supprimer manuellement ou exécuter
sur le système Unix. L'exécution de cette commande forcera également le téléchargement des dépendances.
Mise à jour 2: vider le cache de génération Android du projet actuel
Remarque: Fichier d' Android Studio | Invalider Caches / Restart ne vide pas le cache de génération Android, vous devrez donc le nettoyer séparément.
Sous Windows:
Sur Mac ou Linux:
la source
gradlew clean cleanBuildCache
EDIT:
cleanBuildCache
ne fonctionne plusLe plugin Android Gradle utilise désormais la fonction de cache Gradle
REF: https://guides.gradle.org/using-build-cache/
REF: https://guides.gradle.org/using-build-cache/#caching_android_projects
AUTRES DIGRESSIONS
voir ici (y compris les modifications).
================
INFOS OBSOLÈTES:
Nouvelle solution utilisant la tâche Gradle
cleanBuildCache
disponible via le plugin Android pour Gradle, révision 2.3.0 (février 2017)
Dépendances:
Plus à:
https://developer.android.com/studio/build/build-cache.html#clear_the_build_cache
Contexte
Créer un cache:
stocke certaines sorties que le plug-in Android génère lors de la construction de votre projet (comme les AAR non emballés et les dépendances distantes prédéfinies). Vos builds propres sont beaucoup plus rapides lors de l'utilisation du cache car le système de build peut simplement réutiliser ces fichiers mis en cache lors des builds suivants, au lieu de les recréer. Les projets utilisant le plugin Android 2.3.0 et supérieur utilisent le cache de génération par défaut. Pour en savoir plus, lisez Améliorer la vitesse de construction avec Build Cache.
Remarque: La tâche cleanBuildCache n'est pas disponible si vous désactivez le cache de génération.
usage:
les fenêtres
linux / mac
Android Studio / IntelliJ
** gradle / gradlew sont des fichiers spécifiques au système contenant des scripts - veuillez consulter les informations système comment exécuter le script
la source
Faites attention avec le démon gradle, vous devez l'arrêter avant d'effacer et de relancer gradle.
Arrêtez le premier démon:
Nettoyer le cache en utilisant:
Réexécutez votre compilation
la source
Le démon gradle crée également de nombreux fichiers texte volumineux de chaque journal de construction. Ils sont stockés ici:
"XX" est la version gradle utilisée, comme "4.4", et "XXXX" ne sont que des nombres aléatoires, comme "1234".
La taille totale peut atteindre plusieurs centaines de Mo en quelques mois seulement . Il n'y a aucun moyen de désactiver la journalisation, et les fichiers ne sont pas supprimés automatiquement et ils n'ont pas vraiment besoin d'être conservés.
Mais vous pouvez créer une petite tâche gradle pour les supprimer automatiquement et libérer beaucoup d'espace disque:
Ajoutez ceci à votre
app/build.gradle
:Pour voir quels fichiers sont supprimés, vous pouvez voir la sortie de débogage dans Android Studio -> Affichage -> Fenêtres d'outils -> Créer. Appuyez ensuite sur le bouton «Basculer la vue» sur cette fenêtre pour afficher la sortie de texte.
Notez qu'une synchronisation Gradle ou n'importe quelle génération Gradle déclenchera les suppressions de fichiers.
Une meilleure façon serait de déplacer automatiquement les fichiers vers la Corbeille / Corbeille, ou au moins de les copier dans un dossier Corbeille en premier. Mais je ne sais pas comment faire ça.
la source
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
ingradle.properties
. je fais quelquesclean build
et la deuxième fois la plupart des tâches montrentFROM-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 le3.4.2/
répertoire est parti. ensuite j'en fais un autreclean build
:FROM-CACHE
comme leur état et la construction est terminée à des vitesses activées pour le cache.3.4.2/
répertoire est recréé.3.4.2/
répertoire est vide (sauf pour 2 fichiers de marqueurs de longueur nulle cachés).conclusions:
cleanBuildCache
n'efface ni n'affecte en aucune façon le cache de génération.Ensuite, je désactiver le cache Gradle en retirant
org.gradle.caching=true
degradle.properties
et j'essayer quelquesclean build
:3.4.2/
répertoire reste vide.plus de conclusions:
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!
la source
3.4.2/
dir vide . 2. présence de lacleanBuildCache
tâche 3. la désactivation du cache de génération gradle et la reconstruction n'ont montré aucune preuve de tâches Android touchant le cache.Commander:
rm -rf ~/.gradle/caches/
la source