parece haver informações incorretas postadas aqui. algumas pessoas relatam como limpar o cache do construtor Android (com tarefa cleanBuildCache
), mas parecem não perceber que esse cache é independente do cache de compilação de Gradle, o AFAIK.
meu entendimento é que o cache do Android é anterior (e inspirado) ao Gradle, mas eu posso estar errado. se o construtor Android será / foi atualizado para usar o cache de Gradle e se aposentar, não sei.
EDIT: o cache do construtor Android é obsoleto e foi eliminado. o plug-in Android Gradle agora usa o cache de compilação do Gradle. Para controlar esse cache, você deve agora interagir com a infraestrutura de cache genérica da Gradle.
DICA: pesquise a ajuda do cache de Gradle on-line sem mencionar a palavra-chave 'android' para obter ajuda para o cache relevante no momento.
EDIT 2: devido à pergunta de tir38 em um comentário abaixo, estou testando usando um projeto Android Gradle plugin v3.4.2. o cache gradle é ativado por org.gradle.caching=true
in gradle.properties
. eu faço algumas clean build
e, pela segunda vez, a maioria das tarefas é exibida FROM-CACHE
como status, mostrando que o cache está funcionando.
surpreendentemente, eu tenho uma cleanBuildCache
tarefa gradle e um <user-home>/.android/build-cache/3.4.2/
diretório, ambos sugerindo a existência de um cache do construtor Android.
eu executo cleanBuildCache
e o 3.4.2/
diretório se foi. Em seguida, faço outro clean build
:
- nada mudou: a maioria das tarefas é exibida
FROM-CACHE
como status e a compilação concluída em velocidades ativadas por cache.
- o
3.4.2/
diretório é recriado.
- o
3.4.2/
diretório está vazio (exceto 2 arquivos ocultos, de tamanho zero).
conclusões:
- o armazenamento em cache de todas as tarefas normais do construtor Android é tratado pela Gradle.
- a execução
cleanBuildCache
não limpa ou afeta o cache de compilação de forma alguma.
- ainda existe um cache do construtor Android. pode ser um código vestigial que a equipe de criação do Android esqueceu de remover ou pode realmente esconder algo estranho que, por qualquer motivo, não tenha ou não possa ser portado para usar o cache Gradle. (a opção "não pode" ser altamente improvável, IMHO.)
Em seguida, eu desativar o cache Gradle removendo org.gradle.caching=true
a partir gradle.properties
e eu tentar um par de clean build
:
- as compilações são lentas.
- todas as tarefas mostram seu status como sendo executadas e não armazenadas em cache ou atualizadas.
- o
3.4.2/
diretório continua vazio.
mais conclusões:
- não há fallback do cache do construtor Android para quando o cache do Gradle falhar.
- o cache do construtor Android, pelo menos para tarefas comuns, foi realmente eliminado como afirmei antes.
- o documento android relevante contém informações desatualizadas. em particular, o cache não é ativado por padrão, conforme indicado lá, e o cache Gradle deve ser ativado manualmente.
EDIT 3: o usuário tir38 confirmou que o cache do construtor Android é obsoleto e foi eliminado com essa descoberta . tir38 também criou esse problema . obrigado!
Compiler -> Gradle
nãoUse in-process build
. nada a ver com o cache