这里张贴的信息似乎不正确。一些人报告了如何清除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启用的。在gradle.properties中缓存=true。我做了一对干净的构建和第二次大多数任务显示FROM-CACHE作为他们的状态,显示缓存正在工作。
令人惊讶的是,我有一个cleanBuildCache gradle任务和<user-home>/. Android /build-cache/3.4.2/目录,两者都暗示存在一个Android构建器缓存。
我执行cleanBuildCache, 3.4.2/目录消失了。接下来我做了另一个干净的构建:
没有任何变化:大多数任务以启用缓存的速度显示FROM-CACHE状态并完成构建。
重新创建“3.4.2/”目录。
3.4.2/目录为空(保存2个隐藏的零长度标记文件)。
结论:
所有正常的Android构建器任务的缓存是由Gradle处理的。
执行cleanBuildCache不会以任何方式清除或影响构建缓存。
那里仍然有一个Android构建器缓存。这可能是Android构建团队忘记删除的残留代码,或者它实际上缓存了一些奇怪的东西,无论出于什么原因,都没有或不能移植到Gradle缓存中。(恕我直言,“不能”选项是完全可以改进的。)
接下来,我通过删除org.gradle禁用Gradle缓存。缓存=true从gradle。属性和我尝试了一些干净的构建:
构建很慢。
所有任务都显示它们的状态为正在执行,而不是缓存或最新。
“3.4.2/”目录继续为空。
更多的结论:
当Gradle缓存命中失败时,没有Android构建器缓存回退。
Android构建器缓存,至少对于普通任务来说,确实已经被取消了。
相关的android文档包含过时的信息。特别是缓存在默认情况下并没有启用,Gradle缓存必须手动启用。
编辑3:用户tir38确认Android构建器缓存已经过时,并且已经被消除。Tir38也制造了这个问题。谢谢!