wydaje się, że zamieszczono tutaj nieprawidłowe informacje. niektóre osoby informują o tym, jak wyczyścić pamięć podręczną konstruktora Androida (z zadaniem cleanBuildCache
), ale nie zdają sobie sprawy, że wspomniana pamięć podręczna jest niezależna od pamięci podręcznej kompilacji Gradle, AFAIK.
rozumiem, że pamięć podręczna Androida wyprzedza (i zainspirowała) pamięć Gradle, ale mogę się mylić. czy konstruktor Androida zostanie / został zaktualizowany, aby używać pamięci podręcznej Gradle i wycofywać własną, nie wiem.
EDYCJA: pamięć podręczna konstruktora Androida jest przestarzała i została wyeliminowana. wtyczka Gradle dla Androida używa teraz pamięci podręcznej kompilacji Gradle. aby kontrolować tę pamięć podręczną, musisz teraz wchodzić w interakcje z ogólną infrastrukturą pamięci podręcznej Gradle.
WSKAZÓWKA: wyszukaj w trybie online pomoc dla pamięci podręcznej Gradle'a, nie wspominając o słowie kluczowym „android”, aby uzyskać pomoc dotyczącą aktualnie odpowiedniej pamięci podręcznej.
EDYCJA 2: z powodu pytania tir38 w komentarzu poniżej testuję przy użyciu projektu wtyczki Gradle dla Androida w wersji 3.4.2. Gradle cache jest włączona org.gradle.caching=true
w gradle.properties
. Robię kilka razy, clean build
a drugi raz pokazuje większość zadańFROM-CACHE
ich status, co wskazuje, że pamięć podręczna działa.
co zaskakujące, mam cleanBuildCache
zadanie stopniowania i <user-home>/.android/build-cache/3.4.2/
katalog, oba świadczące o istnieniu pamięci podręcznej konstruktora Androida.
wykonuję, cleanBuildCache
a 3.4.2/
katalogu nie ma. następnie robię kolejne clean build
:
- nic się nie zmieniło: większość zadań pokazuje
FROM-CACHE
ich status, a kompilacja została ukończona z szybkościami włączonymi do pamięci podręcznej.
3.4.2/
katalog jest odtworzony.
3.4.2/
katalog jest pusty (oprócz 2 ukryte pliki, zero długość znacznika).
wnioski:
- Buforowanie wszystkich normalnych zadań konstruktora Androida jest obsługiwane przez Gradle.
- wykonanie
cleanBuildCache
nie usuwa ani nie wpływa w żaden sposób na pamięć podręczną kompilacji.
- wciąż jest tam pamięć podręczna dla Androida. może to być szczątkowy kod, który zespół budujący Androida zapomniał usunąć, lub może faktycznie buforować coś dziwnego, co z jakiegokolwiek powodu nie zostało lub nie może zostać przeniesione do użycia pamięci podręcznej Gradle. (opcja „nie można” jest wysoce poprawialna, IMHO).
następnie wyłączam pamięć podręczną Gradle, usuwając org.gradle.caching=true
z gradle.properties
i próbuję kilku clean build
:
- kompilacje są powolne.
- wszystkie zadania pokazują ich status jako wykonane, a nie w pamięci podręcznej ani na bieżąco.
3.4.2/
katalogu nadal jest pusta.
więcej wniosków:
- nie ma rezerwowej pamięci podręcznej konstruktora Androida, gdy nie uda się trafić pamięci podręcznej Gradle.
- pamięć podręczna konstruktora Androida, przynajmniej do typowych zadań, została rzeczywiście wyeliminowana, jak już wcześniej wspomniałem.
- odpowiedni dokument systemu Android zawiera nieaktualne informacje. w szczególności pamięć podręczna nie jest domyślnie włączona, jak tam stwierdzono, i pamięć podręczną Gradle należy włączyć ręcznie.
EDYCJA 3: użytkownik tir38 potwierdził, że pamięć podręczna konstruktora Androida jest przestarzała i została wyeliminowana dzięki temu znalezieniu . tir38 również stworzył ten problem . dzięki!
Compiler -> Gradle
nieUse in-process build
. nie ma nic wspólnego z pamięcią podręczną