How to clear gradle cache?
我正在尝试使用Android Studio,并且第一次启动时,它的编译时间约为45分钟...如果我不退出该应用程序,那就可以了-以后每次编译/运行该应用程序都需要 大约45秒
我尝试检查一些缓存:主目录中有一个
我的项目文件夹中还有一个
对于为什么我的Android Studio在首次加载应用程序时总是花大量时间运行
我是否还需要清除intellij缓存?
Gradle缓存位于
-
在Windows上:
%USER_HOME%\.gradle/caches/ -
在Mac / Unix上:
$HOME/.gradle/caches/
您可以浏览到这些目录并手动将其删除或运行
1 | rm -rf $HOME/.gradle/caches/ |
在Unix系统上。运行此命令还将强制下载依赖项。
更新2:清除当前项目的Android构建缓存
注意:Android Studio的文件|无效缓存/重启不会清除Android构建缓存,因此您必须单独清理它。
在Windows上:
1 | gradlew cleanBuildCache |
在Mac或Linux上:
1 | ./gradlew cleanBuildCache |
您可以安全地删除位于项目目录下的整个
正如我在网上各处看到的,对于Android开发来说,gradle相当缓慢,人们对此表示抱怨。不知道到底是什么原因-这就是它的工作原理。
我不认为性能低下是因为文件夹大。实际上,他们帮助它更快。 s>
正如@ Bradford20000在评论中指出的那样,可能在
缓存目录保存
使用gradle任务的最新解决方案
可通过适用于Gradle版本2.3.0的android插件获得(2017年2月)
依存关系:
更多内容:
https://developer.android.com/studio/build/build-cache.html#clear_the_build_cache
背景
构建缓存:
存储在构建项目时Android插件生成的某些输出(例如未打包的AAR和预先删除的远程依赖项)。使用缓存时,您的干净构建速度要快得多,因为构建系统可以在后续构建过程中简单地重用那些缓存的文件,而不用重新创建它们。使用Android插件2.3.0及更高版本的项目默认情况下使用构建缓存。要了解更多信息,请阅读"使用构建缓存提高构建速度"。
注意:如果禁用构建缓存,cleanBuildCache任务将不可用。
用法:
视窗
1 | gradlew cleanBuildCache |
Linux / Mac
1 | gradle cleanBuildCache |
Android Studio / IntelliJ
1 | gradle tab (default on right) select and run the task or add it via the configuration window |
** gradle / gradlew是包含脚本的系统特定文件
-请参阅系统信息如何执行脚本
小心gradle守护程序,您必须先停止它,然后再清除并重新运行gradle。
停止第一个守护程序:
1 | ./gradlew --stop |
使用以下命令清除缓存:
1 | rm -rf ~/.gradle/caches/ |
再次运行编译
gradle守护程序还会为每个构建日志创建许多大型文本文件。它们存储在这里:
~/.gradle/daemon/X.X/daemon-XXXX.out.log
" X.X"是使用的gradle版本,例如" 4.4"," XXXX"只是随机数,例如" 1234"。
在短短几个月内,总大小可以增长到数百MB。无法禁用日志记录,并且文件不会自动删除,并且实际上不需要保留它们。
但是您可以创建一个小的gradle任务来自动删除它们,并释放大量磁盘空间:
将此添加到您的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | android { buildTypes { ... } // Delete large build log files from ~/.gradle/daemon/X.X/daemon-XXX.out.log // Source: https://discuss.gradle.org/t/gradle-daemon-produces-a-lot-of-logs/9905 def gradle = project.getGradle() new File("${gradle.getGradleUserHomeDir().getAbsolutePath()}/daemon/${gradle.getGradleVersion()}").listFiles().each { if (it.getName().endsWith('.out.log')) { // println("Deleting gradle log file: $it") // Optional debug output it.delete() } } } |
要查看要删除的文件,可以在Android Studio->视图->工具窗口->构建中查看调试输出。然后在该窗口上按"切换视图"按钮以显示文本输出。
请注意,Gradle Sync或任何Gradle Build都会触发文件删除。
更好的方法是将文件自动移动到"垃圾箱/回收站",或者至少首先将它们复制到"垃圾箱"文件夹。但是我不知道该怎么做。
命令:
这里似乎发布了错误的信息。 有些人报告了如何清除Android构建器缓存(带有任务
我的理解是Android的缓存早于Gradle的缓存(并且受启发),但是我可能是错的。 我不知道是否会更新Android构建器以使用Gradle的缓存并退出自己的缓存。