这里似乎发布了错误的信息。有人报告如何清除Android构建器缓存(带有任务cleanBuildCache
),但似乎没有意识到该缓存独立于Gradle的构建缓存AFAIK。
我的理解是,Android的缓存早于Gradle的缓存(并且受启发),但是我可能错了。我不知道是否会更新Android构建器以使用Gradle的缓存并退出它自己的缓存。
编辑: Android构建器缓存已过时,已被淘汰。Android Gradle插件现在改为使用Gradle的构建缓存。要控制此缓存,您现在必须与Gradle的通用缓存基础结构进行交互。
提示:在线搜索Gradle的缓存帮助,而无需提及关键字“ android”以获取当前相关缓存的帮助。
编辑2:由于下面的评论中tir38的问题,我正在测试使用Android Gradle插件v3.4.2项目。gradle缓存由org.gradle.caching=true
in 启用gradle.properties
。我做了几次,clean build
第二次大多数任务显示FROM-CACHE
为它们的状态,表明缓存正在工作。
令人惊讶的是,我有一个cleanBuildCache
gradle任务和一个<user-home>/.android/build-cache/3.4.2/
目录,都暗示了Android构建器缓存的存在。
我执行cleanBuildCache
,3.4.2/
目录不见了。接下来,我再做一个clean build
:
- 没有任何变化:大多数任务显示
FROM-CACHE
为它们的状态,并且构建以启用缓存的速度完成。
- 该
3.4.2/
目录是重新创建。
- 的
3.4.2/
目录为空(保存2隐藏的,零长度的标记文件)。
结论:
- 所有正常的Android构建器任务的缓存都由Gradle处理。
- 执行
cleanBuildCache
不会以任何方式清除或影响构建缓存。
- 那里仍然有一个Android构建器缓存。这可能是Android构建团队忘记删除的遗迹代码,或者实际上可能缓存了某种奇怪的东西,无论出于何种原因,该奇怪东西都没有或无法移植到使用Gradle缓存中。(恕我直言,“ cannot”选项非常可取。)
接下来,我通过org.gradle.caching=true
从中删除来禁用Gradle缓存,gradle.properties
然后尝试以下几种方法clean build
:
- 构建缓慢。
- 所有任务都将其状态显示为已执行且未缓存或为最新状态。
- 该
3.4.2/
目录继续为空。
更多结论:
- 当Gradle缓存无法命中时,没有Android构建器缓存回退。
- 正如我之前所说,确实已经消除了Android构建器缓存(至少用于常见任务)。
- 相关的android文档包含过时的信息。特别是默认情况下,缓存未默认启用,而Gradle缓存必须手动启用。
编辑3:用户tir38确认Android构建器缓存已过时,并已通过此查找消除。tir38也造成了这个问题。谢谢!
Compiler -> Gradle
不Use in-process build
。与缓存无关