2014-04-12 721 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