2014-04-12 304 views
101

我正在嘗試使用Android Studio,並且第一次啓動它時,需要45分鐘才能編譯...如果我不退出應用程序,那沒關係 - 每次後續編譯/運行應用程序將需要45秒。如何清除gradle緩存?

我試着檢查一些緩存:我的主目錄中有一個.gradle/caches文件夾,它就像123 MB大。

在我的項目文件夾中還有一個.gradle文件夾...其中一個taskArtifacts就像200 MB。我很害怕隨機隨機覈對它們。文件夾的哪些部分可以安全刪除?

有沒有更好的解釋,爲什麼我的Android Studio永遠在第一次加載應用程序時運行gradle assemble任務?

我是否也必須清除intellij緩存呢?

+3

後來我發現45分鐘編譯是因爲我改變了'編譯器 - > Gradle'的設置,而不是'使用進程內部構建'。與緩存無關 –

+0

沒有任何答案有幫助。發現一些圖像被損壞。在Windows資源管理器中打開圖像可快速顯示哪些圖像已損壞(不會加載預覽的圖像)。取代這些圖像和瞧! – Bimde

回答

127

您可以安全地刪除項目目錄下的整個.gradle文件夾。每次執行任務時都會重新創建。主目錄下的.gradle也是如此。它也會被重新創建,但是整個依賴必須再次下載 - 這相當耗時。

正如我在網上gradle for android開發的各個地方看到的那樣,速度很慢,人們抱怨它。不知道究竟是什麼原因 - 這是它的工作原理。

我不認爲低性能是因爲大文件夾。事實上,他們幫助它變得更快。

As @ Bradford20000在評論中指出,可能有gradle.properties文件以及位於$HOME/.gradle下的全局gradle腳本。在這種情況下,刪除此目錄的內容時必須特別注意。 緩存目錄包含Gradle構建緩存。所以如果你有任何錯誤可以刪除。這是對.gradle/caches

+14

需要注意的一件事是,如果在主目錄的.gradle文件夾中有一個gradle.properties文件,則不會希望刪除整個文件夾。通常,只需刪除.gradle/caches就足以讓Gradle重新下載所有依賴關係。 – Bradford2000

123

你可以做到這一點在Android工作室

要清理系統緩存:

在主菜單中,選擇文件|使緩存無效/重啓。將出現 Invalidate Caches消息,通知您緩存將在下次啓動時失效並重建。使用 對話框中的按鈕使緩存失效,重新啓動IntelliJ IDEA或兩者。

https://www.jetbrains.com/idea/help/cleaning-system-cache.html

更新:上述方法將清除Android Studio中的緩存,而不是gradle這個緩存。 搖籃緩存座落於

  • 在Windows上:%USER_HOME%.gradle /緩存
  • 在Mac/Unix上:$ HOME /。gradle產出/緩存/

可以瀏覽到這些目錄並手動刪除或Unix系統上運行

rm -rf $HOME/.gradle/caches/ 

。運行這個命令也會強制下載依賴關係。

更新2:Clear build cache of current project

在Windows上:

gradlew cleanBuildCache 

在Mac或Linux:

./gradlew cleanBuildCache 
+13

這並未清除Maven依賴關係的緩存。我從maven倉庫中刪除了庫,並使Android Studio緩存失效,但該項目仍在構建。這意味着Maven依賴關係的gradle緩存不會被清除。 – mattm

+1

您描述的方式只會清除主項目中的緩存,並且它是項目依賴項,但庫依賴項完好無損。你描述瞭如何清理AndroidStudio的緩存,但不是gradle的緩存。 – Leandroid

+0

是的,但是在加載項目之前,這並未在Mac上顯示。 – milosmns

19

使用 gradle這個任務最新解決方案

cleanBuildCache

通過的搖籃,修訂2.3.0(二月2017)Android插件

依賴可供選擇:

  1. 搖籃3.3或更高版本。
  2. 構建工具25.0.0或更高版本。

    https://developer.android.com/studio/build/build-cache.html#clear_the_build_cache

    背景

    構建緩存:

    存儲某些輸出,建設項目時,Android插件生成(如散裝

更多AAR和預先分配的遠程依賴關係)。在使用緩存時,您的乾淨版本會更快,因爲構建系統可以在後續版本中簡單地重用這些緩存的文件,而不是重新創建它們。使用Android插件2.3.0及更高版本的項目默認使用構建緩存。要了解更多信息,請閱讀使用構建緩存提高構建速度。

注意:如果禁用構建緩存,則cleanBuildCache任務不可用。

用法:

窗口

gradlew cleanBuildCache 

的Linux/MAC

gradle cleanBuildCache 

機器人工作室/ inteliij

gradle tab (default on right) select and run task or add it via configuration window 

** gradle產出/ gradlew是包含腳本 特定的系統文件 - 請參閱系統信息如何執行腳本

  1. 的Linux - https://www.cyberciti.biz/faq/howto-run-a-script-in-linux/
  2. 窗口 - https://technet.microsoft.com/en-us/library/bb613481(v=vs.85).aspx
  3. MAC https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/index.html
+0

新的答案! – Ferdau