Próbuję użyć Android Studio i przy pierwszym uruchomieniu go kompilacja zajmuje około 45 MINUT ... Jeśli nie zamknę aplikacji, jest w porządku - każda kolejna kompilacja / uruchomienie aplikacji zajmie około 45 sekund.
Próbowałem sprawdzić niektóre z moich pamięci podręcznych: .gradle/caches
w moim katalogu domowym znajduje się folder, który zawiera 123 MB.
W .gradle
folderze mojego projektu jest także folder ... jeden z nich taskArtifacts
miał rozmiar około 200 MB. Obawiam się, że losowo ich oburzę. Które części folderów można bezpiecznie usunąć?
Czy jest lepsze wytłumaczenie, dlaczego moje Android Studio uruchamia gradle assemble
zadanie po pierwszym załadowaniu aplikacji?
Czy muszę też wyczyścić pamięć podręczną intellij?
Compiler -> Gradle
nieUse in-process build
. nie ma nic wspólnego z pamięcią podręcznąOdpowiedzi:
Jak zauważył @ Bradford20000 w komentarzach, może znajdować się
gradle.properties
plik, a także globalne skrypty oceny$HOME/.gradle
. W takim przypadku należy zwrócić szczególną uwagę podczas usuwania zawartości tego katalogu..gradle/caches
Katalog posiadaGradle
pamięć podręczną kompilacji. Więc jeśli masz jakiś błąd dotyczący kompilacji pamięci podręcznej, możesz ją usunąć.źródło
Pamięć podręczna stopniowania lokalizuje się na
%USER_HOME%\.gradle/caches/
~/.gradle/caches/
Możesz przejść do tego katalogu i ręcznie go usunąć lub uruchomić
w systemie Unix. Uruchom to polecenie wymusi również pobranie zależności.
Aktualizacja 2: Wyczyść pamięć podręczną kompilacji systemu Android dla bieżącego projektu
Uwaga: plik Android Studio | Nieprawidłowa pamięć podręczna / ponowne uruchomienie nie usuwa pamięci podręcznej kompilacji systemu Android, więc musisz wyczyścić ją osobno.
W systemie Windows:
W systemie Mac lub Linux:
źródło
gradlew clean cleanBuildCache
EDYCJA:
cleanBuildCache
już nie działaWtyczka gradle dla Androida wykorzystuje teraz funkcję pamięci podręcznej gradle
REF: https://guides.gradle.org/using-build-cache/
ODNIESIENIE: https://guides.gradle.org/using-build-cache/#caching_android_projects
INNE DIGRESJE
patrz tutaj (w tym zmiany).
================
INFORMACJE OBSOLETOWE:
Najnowsze rozwiązanie wykorzystujące zadanie stopniowe
cleanBuildCache
dostępny za pośrednictwem wtyczki Android do wersji Gradle, wersja 2.3.0 (luty 2017)
Zależności:
Więcej w:
https://developer.android.com/studio/build/build-cache.html#clear_the_build_cache
tło
Zbuduj pamięć podręczną:
przechowuje pewne dane wyjściowe, które wtyczka Android generuje podczas budowania projektu (takie jak nieopakowane AAR i wstępnie zdeklarowane zależności zdalne). Twoje czyste kompilacje są znacznie szybsze podczas korzystania z pamięci podręcznej, ponieważ system kompilacji może po prostu ponownie użyć tych buforowanych plików podczas kolejnych kompilacji, zamiast je odtwarzać. Projekty korzystające z wtyczki Android 2.3.0 i wyższej domyślnie używają pamięci podręcznej kompilacji. Aby dowiedzieć się więcej, przeczytaj artykuł Popraw szybkość kompilacji dzięki pamięci podręcznej kompilacji.
Uwaga: Zadanie cleanBuildCache nie jest dostępne, jeśli wyłączysz pamięć podręczną kompilacji.
stosowanie:
Windows
linux / mac
Android Studio / IntelliJ
** gradle / gradlew to specyficzne dla systemu pliki zawierające skrypty - zobacz informacje o systemie, jak wykonać skrypt
źródło
Uważaj na demona gradle, musisz go zatrzymać przed wyczyszczeniem i ponownie uruchomić gradle.
Zatrzymaj pierwszego demona:
Wyczyść pamięć podręczną, używając:
Uruchom ponownie kompilację
źródło
Demon gradle tworzy także wiele dużych plików tekstowych każdego dziennika kompilacji. Są tutaj przechowywane:
„XX” to używana wersja stopniowa, na przykład „4.4”, a „XXXX” to tylko liczby losowe, na przykład „1234”.
Całkowity rozmiar może wzrosnąć do kilkuset MB w ciągu zaledwie kilku miesięcy . Nie ma możliwości wyłączenia rejestrowania, a pliki nie są automatycznie usuwane i nie trzeba ich tak naprawdę zatrzymywać.
Ale możesz utworzyć małe zadanie stopniowe, aby automatycznie je usunąć i zwolnić dużo miejsca na dysku:
Dodaj to do
app/build.gradle
:Aby zobaczyć, które pliki są usuwane, możesz zobaczyć wyniki debugowania w Android Studio -> Widok -> Narzędzie Windows -> Kompilacja. Następnie naciśnij przycisk „Przełącz widok” w tym oknie, aby wyświetlić tekst.
Zauważ, że Gradle Sync lub dowolna kompilacja Gradle wyzwoli usuwanie plików.
Lepszym sposobem byłoby automatyczne przeniesienie plików do Kosza / Kosza lub przynajmniej skopiowanie ich najpierw do folderu Kosz. Ale nie wiem jak to zrobić.
źródło
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
wgradle.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
a3.4.2/
katalogu nie ma. następnie robię kolejneclean build
: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:
cleanBuildCache
nie usuwa ani nie wpływa w żaden sposób na pamięć podręczną kompilacji.następnie wyłączam pamięć podręczną Gradle, usuwając
org.gradle.caching=true
zgradle.properties
i próbuję kilkuclean build
:3.4.2/
katalogu nadal jest pusta.więcej wniosków:
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!
źródło
3.4.2/
reż. 2. obecnośćcleanBuildCache
zadania 3. wyłączenie pamięci podręcznej kompilacji stopni i przebudowa nie pokazała żadnych dowodów na to, że zadania Androida uderzały w pamięć podręczną.Komenda:
rm -rf ~/.gradle/caches/
źródło