我尝试使用Android Studio,第一次启动它时,编译需要45分钟...如果我不退出应用程序,那就没关系 - 每次后续编译/运行应用程序需要45秒。
我试图查看我的一些缓存:我的主目录中有一个.gradle/caches
文件夹,它就像123 MB大。
我的项目文件夹中还有一个.gradle
文件夹...其中一个taskArtifacts
就像200 MB。我害怕只是随意地将它们两者核对。删除文件夹的哪些部分是安全的?
有没有更好的解释为什么我的Android Studio在第一次加载应用程序时会永远运行gradle assemble
任务?
我是否还必须清除intellij缓存?
答案 0 :(得分:252)
Gradle 缓存位于
%USER_HOME%\.gradle/caches/
$HOME/.gradle/caches/
您可以浏览到这些目录并手动删除它或运行
rm -rf $HOME/.gradle/caches/
在Unix系统上。运行此命令也将强制下载依赖项。
更新2: Clear the Android build cache of current project
注意:Android Studio的文件|无效缓存/重新启动不会清除Android构建缓存,因此您必须单独清理它。
在Windows上:
gradlew cleanBuildCache
在Mac或Linux上:
./gradlew cleanBuildCache
答案 1 :(得分:214)
您可以安全地删除位于项目目录下的整个 .gradle
文件夹。每次运行任务时都会重新创建它。主目录下的.gradle
也是如此。它也将被重新创建,但必须再次下载整个依赖项 - 这非常耗时。
正如我在各个地方看到的那样,通过网络进行Android开发的速度非常慢,人们抱怨它。不知道究竟是什么原因 - 这就是它的工作原理。
我不认为低性能是因为大文件夹。实际上他们帮助它更快。
正如@ Bradford20000在评论中指出的那样,可能有一个gradle.properties
文件以及位于$HOME/.gradle
下的全局gradle脚本。在这种情况下,删除此目录的内容时必须特别注意。
缓存目录包含Gradle
构建缓存。因此,如果您有任何错误,可以删除它。它位于.gradle/caches
答案 2 :(得分:49)
使用 gradle任务的最新解决方案
<强> cleanBuildCache
强>
可通过Android插件获取Gradle,修订版2。3。0(2017年2月)
依赖关系:
更多信息:
https://developer.android.com/studio/build/build-cache.html#clear_the_build_cache
背景
构建缓存:
存储Android插件在构建项目时生成的某些输出(例如未打包的AAR和预定义的远程依赖项)。使用缓存时,干净的构建要快得多,因为构建系统可以在后续构建期间简单地重用这些缓存的文件,而不是重新创建它们。使用Android插件2.3.0及更高版本的项目默认使用构建缓存。要了解更多信息,请阅读使用构建缓存提高构建速度。
注意:如果禁用构建缓存,则cleanBuildCache任务不可用。
<强>用法:强>
windows
gradlew cleanBuildCache
linux / mac
gradle cleanBuildCache
Android Studio / IntelliJ
gradle tab (default on right) select and run the task or add it via the configuration window
** gradle / gradlew是包含脚本的系统特定文件 - 请参阅系统信息如何执行脚本
答案 3 :(得分:4)
请注意gradle守护进程,您必须先停止它,然后再清除并重新运行gradle。
停止第一个守护程序:
./ gradlew --stop
使用以下命令清除缓存
:rm -rf〜/ .gradle / caches /
再次运行编译
答案 4 :(得分:3)
gradle守护程序还会为每个构建日志创建许多大型文本文件。它们存储在这里:
~/.gradle/daemon/X.X/daemon-XXXX.out.log
“ X.X”是使用中的gradle版本,例如“ 4.4”,“ XXXX”只是随机数,例如“ 1234”。
总大小可以在短短几个月内增长到数百MB 。无法禁用日志记录,并且文件不会自动删除,并且确实不需要保留它们。
但是您可以创建一个small gradle task to automatically delete them,并释放大量磁盘空间:
将此添加到您的 app/build.gradle
:
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都会触发文件删除。
一种更好的方法是将文件自动移动到垃圾箱/回收站,或者至少首先将它们复制到垃圾箱文件夹。但是我不知道该怎么做。
答案 5 :(得分:0)
要在 android studio 中清除您的 gradle 缓存:
gradlew clean
答案 6 :(得分:0)
我的 ~/.gradle/caches/
文件夹使用的是 14G。
使用以下方案后,从14G到1.7G。
$ rm -rf ~/.gradle/caches/transforms-*
$ rm -rf ~/.gradle/caches/build-cache-*
奖金
此命令详细显示已使用的缓存空间
$ sudo du -ah --max-depth = 1 ~/.gradle/caches/ | sort -hr
答案 7 :(得分:0)
这篇文章Put your Android Studio on a diet按照推荐here
很有帮助对于那些寻求快速修复的人,请按:
File
> Invalidate Caches Restart
答案 8 :(得分:-1)
there seems to be incorrect info posted here. some people report on how to clear the Android builder cache (with task cleanBuildCache
) but do not seem to realize that said cache is independent of Gradle's build cache, AFAIK.
my understanding is that Android's cache predates (and inspired) Gradle's, but i could be wrong. whether the Android builder will be/was updated to use Gradle's cache and retire its own, i do not know.
答案 9 :(得分:-1)
在android studio中,打开查看>工具窗口>终端,然后执行以下命令
在Windows上:
gradlew cleanBuildCache
在Mac或Linux上:
./gradlew cleanBuildCache
如果要从项目中禁用缓存,请将其添加到gradle构建属性中
( 警告:如果没有缓存,这可能会降低您的PC性能,因为在运行应用程序期间每次都消耗相同的时间)
android.enableBuildCache=false
答案 10 :(得分:-2)
命令:rm -rf ~/.gradle/caches/