Es scheint hier falsche Informationen zu geben. Einige Leute berichten darüber, wie sie den Android-Builder-Cache löschen (mit der Aufgabe cleanBuildCache
), erkennen aber anscheinend nicht, dass dieser Cache unabhängig vom Gradle-Build-Cache ist, soweit ich weiß.
Mein Verständnis ist, dass der Android-Cache vor dem Gradle-Cache (und hat diesen inspiriert) existierte, aber ich könnte falsch liegen. Ob der Android-Builder aktualisiert wird/wurde, um Gradles Cache zu verwenden und seinen eigenen zu ersetzen, weiß ich nicht.
BEARBEITEN: Der Android-Builder-Cache ist veraltet und wurde beseitigt. Das Android Gradle Plugin verwendet jetzt stattdessen den Gradle-Build-Cache. Um diesen Cache zu kontrollieren, müssen Sie jetzt mit der generischen Cache-Infrastruktur von Gradle interagieren.
TIPP: Suchen Sie online nach Hilfe zum Gradle-Cache, ohne das Schlüsselwort 'android' zu erwähnen, um Hilfe für den aktuell relevanten Cache zu erhalten.
BEARBEITEN 2: Aufgrund der Frage von tir38 in einem Kommentar unten teste ich ein Projekt mit Android Gradle Plugin v3.4.2. Der Gradle-Cache wird durch org.gradle.caching=true
in gradle.properties
aktiviert. Ich führe ein paar clean build
aus und beim zweiten Mal zeigen die meisten Aufgaben den Status FROM-CACHE
an, was zeigt, dass der Cache funktioniert.
Überraschenderweise habe ich eine cleanBuildCache
Gradle-Aufgabe und ein /.android/build-cache/3.4.2/
-Verzeichnis, die beide auf die Existenz eines Android-Builder-Caches hinweisen.
Ich führe cleanBuildCache
aus und das 3.4.2/
-Verzeichnis verschwindet. Als Nächstes führe ich einen weiteren clean build
durch:
- nichts hat sich geändert: Die meisten Aufgaben zeigen den Status
FROM-CACHE
an und der Build wurde mit aktiviertem Cache in schneller Geschwindigkeit abgeschlossen.
- Das
3.4.2/
-Verzeichnis wird neu erstellt.
- Das
3.4.2/
-Verzeichnis ist leer (außer 2 versteckten, null Länge markierenden Dateien).
Schlussfolgerungen:
- Das Cachen aller normalen Android-Builder-Aufgaben wird von Gradle behandelt.
- Das Ausführen von
cleanBuildCache
löscht oder beeinflusst den Build-Cache in keiner Weise.
- Es gibt immer noch einen Android-Builder-Cache. Dies könnte ein Überbleibsel von Code sein, das das Android-Buildteam vergessen hat zu entfernen, oder es könnte tatsächlich etwas Seltsames cachen, das aus irgendeinem Grund nicht auf den Gradle-Cache portiert wurde oder kann. (Die 'kann nicht' -Option ist meiner Meinung nach sehr unwahrscheinlich.)
Als Nächstes deaktiviere ich den Gradle-Cache, indem ich org.gradle.caching=true
aus gradle.properties
entferne, und ich versuche ein paar clean build
:
- Die Builds sind langsam.
- Alle Aufgaben zeigen an, dass sie ausgeführt werden und nicht gecached oder aktuell sind.
- Das
3.4.2/
-Verzeichnis bleibt leer.
Weitere Schlussfolgerungen:
- Es gibt keinen Android-Builder-Cache-Fallback, wenn der Gradle-Cache nicht greift.
- Der Android-Builder-Cache wurde zumindest für alltägliche Aufgaben tatsächlich, wie ich zuvor angegeben habe, beseitigt.
- Das relevante Android-Dokument enthält veraltete Informationen. Insbesondere ist der Cache, wie dort angegeben, nicht standardmäßig aktiviert, und der Gradle-Cache muss manuell aktiviert werden.
BEARBEITEN 3: Benutzer tir38 bestätigte, dass der Android-Builder-Cache veraltet ist und mit diesem Fund beseitigt wurde. tir38 hat auch diese Ausgabe erstellt. Vielen Dank!