Ich versuche, Android Studio zu verwenden, und beim ersten Start dauert das Kompilieren etwa 45 Minuten. Wenn ich die Anwendung nicht beende, ist dies in Ordnung. Jede nachfolgende Kompilierung / Ausführung der App dauert etwa 45 Sekunden.
Ich habe versucht, einige meiner Caches zu überprüfen: .gradle/caches
In meinem Home-Verzeichnis befindet sich ein Ordner mit 123 MB.
Es gibt auch einen .gradle
Ordner in meinem Projektordner ... einer davon taskArtifacts
war wie 200 MB. Ich habe Angst, sie beide zufällig zu zerstören. Welche Teile der Ordner können sicher gelöscht werden?
Gibt es eine bessere Erklärung dafür, warum mein Android Studio gradle assemble
beim ersten Laden der Anwendung ewig braucht, um die Aufgabe auszuführen ?
Muss ich auch den Intellij-Cache leeren?
Compiler -> Gradle
nicht geändert habeUse in-process build
. nichts mit dem Cache zu tunAntworten:
Wie @ Bradford20000 in den Kommentaren
gradle.properties
hervorhob , befinden sich möglicherweise eine Datei sowie globale Gradle-Skripte unter$HOME/.gradle
. In diesem Fall muss beim Löschen des Inhalts dieses Verzeichnisses besondere Aufmerksamkeit geschenkt werden.Das
.gradle/caches
Verzeichnis enthält denGradle
Build-Cache. Wenn Sie also einen Fehler beim Erstellen des Cache haben, können Sie ihn löschen.quelle
Der Gradle- Cache befindet sich bei
%USER_HOME%\.gradle/caches/
~/.gradle/caches/
Sie können zu diesem Verzeichnis navigieren und es manuell löschen oder ausführen
auf Unix-System. Wenn Sie diesen Befehl ausführen, wird auch das Herunterladen von Abhängigkeiten erzwungen.
Update 2: Leeren Sie den Android- Build-Cache des aktuellen Projekts
Hinweis: Android Studio- Datei | Durch ungültige Caches / Neustart wird der Android-Build-Cache nicht gelöscht , sodass Sie ihn separat bereinigen müssen.
Unter Windows:
Auf Mac oder Linux:
quelle
gradlew clean cleanBuildCache
EDIT:
cleanBuildCache
funktioniert nicht mehrDas Android Gradle Plugin nutzt jetzt die Gradle Cache Funktion
REF: https://guides.gradle.org/using-build-cache/
REF: https://guides.gradle.org/using-build-cache/#caching_android_projects
ANDERE DIGRESSIONEN
siehe hier (einschließlich Änderungen).
================
OBSOLETE INFO:
Neueste Lösung mit Gradle-Aufgabe
cleanBuildCache
verfügbar über Android Plugin für Gradle, Revision 2.3.0 (Februar 2017)
Abhängigkeiten:
mehr bei:
https://developer.android.com/studio/build/build-cache.html#clear_the_build_cache
Hintergrund
Cache erstellen:
speichert bestimmte Ausgaben, die das Android-Plugin beim Erstellen Ihres Projekts generiert (z. B. nicht gepackte AARs und vordefinierte Remote-Abhängigkeiten). Ihre sauberen Builds sind bei Verwendung des Caches viel schneller, da das Build-System diese zwischengespeicherten Dateien bei nachfolgenden Builds einfach wiederverwenden kann, anstatt sie neu zu erstellen. Projekte, die das Android-Plugin 2.3.0 und höher verwenden, verwenden standardmäßig den Build-Cache. Weitere Informationen finden Sie unter Verbessern der Build-Geschwindigkeit mit dem Build-Cache.
Hinweis: Die cleanBuildCache-Task ist nicht verfügbar, wenn Sie den Build-Cache deaktivieren.
Verwendungszweck:
Fenster
Linux / Mac
Android Studio / IntelliJ
** gradle / gradlew sind systemspezifische Dateien, die Skripte enthalten. Weitere Informationen zur Ausführung des Skripts finden Sie in den Systeminformationen
quelle
Seien Sie vorsichtig mit dem gradle-Daemon. Sie müssen ihn stoppen, bevor Sie gradle löschen und erneut ausführen.
Stoppen Sie den ersten Daemon:
Bereinigen Sie den Cache mit:
Führen Sie die Kompilierung erneut aus
quelle
Der Gradle-Daemon erstellt außerdem viele große Textdateien für jedes einzelne Build-Protokoll. Sie werden hier gespeichert:
"XX" ist die verwendete Gradle-Version wie "4.4", und "XXXX" sind nur Zufallszahlen wie "1234".
Die Gesamtgröße kann in wenigen Monaten auf mehrere hundert MB anwachsen . Es gibt keine Möglichkeit, die Protokollierung zu deaktivieren, und die Dateien werden nicht automatisch gelöscht und müssen nicht wirklich beibehalten werden.
Sie können jedoch eine kleine Gradle-Aufgabe erstellen , um sie automatisch zu löschen und viel Speicherplatz :
Fügen Sie dies zu Ihrem hinzu
app/build.gradle
:Um zu sehen, welche Dateien gelöscht werden, können Sie die Debug-Ausgabe in Android Studio -> Ansicht -> Tool Windows -> Erstellen anzeigen. Klicken Sie dann in diesem Fenster auf die Schaltfläche "Ansicht umschalten", um die Textausgabe anzuzeigen.
Beachten Sie, dass eine Gradle-Synchronisierung oder ein Gradle-Build das Löschen von Dateien auslöst.
Eine bessere Möglichkeit wäre, die Dateien automatisch in den Papierkorb zu verschieben oder sie zuerst in einen Papierkorb zu kopieren. Aber ich weiß nicht, wie ich das machen soll.
quelle
Hier scheint es falsche Informationen zu geben. Einige Leute berichten, wie der Android Builder-Cache (mit Aufgabe
cleanBuildCache
) geleert werden kann, scheinen jedoch nicht zu erkennen, dass dieser Cache unabhängig von Gradles Build-Cache AFAIK ist.Mein Verständnis ist, dass der Cache von Android vor dem von Gradle liegt (und ihn inspiriert hat), aber ich könnte mich irren. Ob der Android Builder aktualisiert wird / wurde, um Gradles Cache zu verwenden und seinen eigenen zurückzuziehen, weiß ich nicht.
BEARBEITEN: Der Android Builder-Cache ist veraltet und wurde entfernt. Das Android Gradle-Plugin verwendet jetzt stattdessen den Build-Cache von Gradle. Um diesen Cache zu steuern, müssen Sie jetzt mit der generischen Cache-Infrastruktur von Gradle interagieren.
TIPP: Suchen Sie online nach Gradles Cache-Hilfe, ohne das Schlüsselwort "android" zu erwähnen, um Hilfe für den aktuell relevanten Cache zu erhalten.
EDIT 2: Aufgrund der Frage von tir38 in einem Kommentar unten teste ich mit einem Android Gradle Plugin v3.4.2 Projekt. Der Gradle-Cache wird durch
org.gradle.caching=true
in aktiviertgradle.properties
. Ich mache ein paarclean build
und das zweite Mal zeigen die meisten AufgabenFROM-CACHE
als ihren Status, was zeigt, dass der Cache funktioniert.Überraschenderweise habe ich eine
cleanBuildCache
Gradle-Aufgabe und ein<user-home>/.android/build-cache/3.4.2/
Verzeichnis, die beide auf die Existenz eines Android-Builder-Cache hinweisen.Ich führe aus
cleanBuildCache
und das3.4.2/
Verzeichnis ist weg. als nächstes mache ich noch einenclean build
:FROM-CACHE
als Status angezeigt und der Build mit Cache-fähigen Geschwindigkeiten abgeschlossen.3.4.2/
Verzeichnis wird neu erstellt.3.4.2/
Verzeichnis ist leer (außer für 2 versteckte Markierungsdateien mit der Länge Null).Schlussfolgerungen:
cleanBuildCache
wird der Build-Cache in keiner Weise gelöscht oder beeinflusst.Als nächstes deaktiviere ich den Gradle-Cache durch Entfernen
org.gradle.caching=true
ausgradle.properties
und versuche ein paar vonclean build
:3.4.2/
Verzeichnis ist weiterhin leer.Weitere Schlussfolgerungen:
BEARBEITEN 3: Benutzer tir38 hat bestätigt, dass der Android Builder-Cache veraltet ist und mit diesem Fund entfernt wurde . tir38 hat dieses Problem ebenfalls erstellt . Vielen Dank!
quelle
3.4.2/
Verzeichnis. 2. Vorhandensein einercleanBuildCache
Aufgabe 3. Deaktivieren des Gradle-Build-Cache und Wiederherstellen zeigten keine Hinweise darauf, dass Android-Aufgaben den Cache treffen.Befehl:
rm -rf ~/.gradle/caches/
quelle