我正在尝试使用Android Studio,第一次启动它时,它需要45分钟来编译……如果我不退出应用程序,这是可以的-每次后续编译/运行应用程序将花费大约45秒。
我试着检查我的一些缓存:在我的主目录中有一个。gradle/caches文件夹,它包含123 MB。
在我的项目文件夹中还有一个。gradle文件夹…其中一个任务工件大概有200mb。我很害怕随机地把它们都炸了。删除文件夹的哪些部分是安全的?
有没有更好的解释为什么我的Android工作室在第一次加载应用程序时永远运行gradle组装任务?
我也必须清除intellij缓存吗?
gradle守护进程还为每个构建日志创建许多大型文本文件。它们存储在这里:
~ gradle守护/ X。X /日志daemon-XXXX出局。
“X.X”是正在使用的gradle版本,比如“7.5”,而“XXXX”只是随机数,比如“1234”。"~"是你的用户$HOME文件夹。
总大小可以在短短几个月内增长到几百MB。没有办法禁用日志记录。这些文件不会自动删除,实际上也不需要保留。
但是你可以创建一个小的gradle任务来自动删除它们,并释放大量的磁盘空间:
添加到你的app/build.gradle:
android {
buildTypes {
...
}
// Delete large build log files from ~/.gradle/daemon/X.X/daemon-XXX.out.log
// Source 1: https://discuss.gradle.org/t/gradle-daemon-produces-a-lot-of-logs/9905
// Source 2: https://stackoverflow.com/questions/23025433/how-to-clear-gradle-cache#51479044
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()
}
}
}
要查看哪些文件正在被删除,您可以启用println()行,然后查看Android Studio -> View -> Tool Windows -> Build中的调试输出。然后按下该窗口上的“Toggle View”按钮,显示文本输出。
注意,Gradle Sync或任何Gradle Build都会触发文件删除。
更好的方法是自动将文件移动到回收站/回收站,或者至少先将它们复制到回收站文件夹。但我不知道该怎么做。
gradle守护进程还为每个构建日志创建许多大型文本文件。它们存储在这里:
~ gradle守护/ X。X /日志daemon-XXXX出局。
“X.X”是正在使用的gradle版本,比如“7.5”,而“XXXX”只是随机数,比如“1234”。"~"是你的用户$HOME文件夹。
总大小可以在短短几个月内增长到几百MB。没有办法禁用日志记录。这些文件不会自动删除,实际上也不需要保留。
但是你可以创建一个小的gradle任务来自动删除它们,并释放大量的磁盘空间:
添加到你的app/build.gradle:
android {
buildTypes {
...
}
// Delete large build log files from ~/.gradle/daemon/X.X/daemon-XXX.out.log
// Source 1: https://discuss.gradle.org/t/gradle-daemon-produces-a-lot-of-logs/9905
// Source 2: https://stackoverflow.com/questions/23025433/how-to-clear-gradle-cache#51479044
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()
}
}
}
要查看哪些文件正在被删除,您可以启用println()行,然后查看Android Studio -> View -> Tool Windows -> Build中的调试输出。然后按下该窗口上的“Toggle View”按钮,显示文本输出。
注意,Gradle Sync或任何Gradle Build都会触发文件删除。
更好的方法是自动将文件移动到回收站/回收站,或者至少先将它们复制到回收站文件夹。但我不知道该怎么做。
在android studio中打开“查看>工具Windows >终端”并执行以下命令
在Windows上:
gradlew cleanBuildCache
在Mac或Linux上:
./gradlew cleanBuildCache
如果你想要从你的项目中禁用缓存,把这个添加到gradle的构建属性中
(警告:如果没有缓存,这可能会降低您的PC性能,而在每次运行应用程序时都会消耗相同的时间)
android.enableBuildCache=false
Gradle缓存位于
Windows: %USERPROFILE%\.gradle\缓存
Mac / UNIX: ~/.gradle/caches/
您可以浏览到这些目录并手动删除或运行
rm -r $HOME/.gradle/caches/
在UNIX系统上。运行此命令还将强制下载依赖项。
更新
清除当前项目的Android构建缓存
注意:Android Studio的文件>无效缓存/重新启动不清除Android构建缓存,所以你必须单独清除它。
在Windows上:
gradlew cleanBuildCache
在Mac或UNIX上:
./gradlew cleanBuildCache
更新2
这篇文章将为你的Android Studio提供更多关于Android Studio缓存的细节