Estou tentando usar o Android Studio e, na primeira vez em que o inicializo, leva cerca de 45 minutos para compilar ... Se eu não sair do aplicativo, tudo bem - cada compilação / execução subsequente levará cerca de 45 segundos.
Tentei verificar alguns dos meus caches: há uma .gradle/caches
pasta no meu diretório pessoal e ela contém 123 MB.
Há também uma .gradle
pasta na minha pasta de projeto ... uma delas taskArtifacts
tinha 200 MB. Estou com medo de apenas aleatoriamente destruir os dois. Quais partes das pastas são seguras para excluir?
Existe uma explicação melhor para o motivo pelo qual meu Android Studio está demorando uma eternidade para executar a gradle assemble
tarefa ao carregar o aplicativo pela primeira vez?
Também tenho que limpar o cache intellij também?
Compiler -> Gradle
nãoUse in-process build
. nada a ver com o cacheRespostas:
Como @ Bradford20000 apontou nos comentários, pode haver um
gradle.properties
arquivo e também scripts globais de classificação localizados em$HOME/.gradle
. Nesse caso, deve-se prestar atenção especial ao excluir o conteúdo deste diretório.O
.gradle/caches
diretório mantém oGradle
cache de construção. Portanto, se você tiver algum erro sobre o cache de compilação, poderá excluí-lo.fonte
O cache Gradle localiza em
%USER_HOME%\.gradle/caches/
~/.gradle/caches/
Você pode navegar até esse diretório e excluí-lo manualmente ou executar
no sistema Unix. Executar este comando também forçará o download de dependências.
Atualização 2: limpe o cache de compilação do Android do projeto atual
Nota: Arquivo do Android Studio | A opção Invalidar caches / reiniciar não limpa o cache de compilação do Android; portanto, você deverá limpá-lo separadamente.
No Windows:
No Mac ou Linux:
fonte
gradlew clean cleanBuildCache
EDIT:
cleanBuildCache
não funciona maisO plugin Android Gradle agora utiliza o recurso Gradle Cache
REF: https://guides.gradle.org/using-build-cache/
REF: https://guides.gradle.org/using-build-cache/#caching_android_projects
OUTRAS DIGRESSÕES
veja aqui (incluindo edições).
================
INFORMAÇÃO OBSOLETA:
Solução mais recente usando a tarefa gradle
cleanBuildCache
disponível via plugin android para Gradle, revisão 2.3.0 (fevereiro de 2017)
Dependências:
mais em:
https://developer.android.com/studio/build/build-builde.html#clear_the_build_cache
fundo
Criar cache:
armazena determinadas saídas que o plug-in Android gera ao criar seu projeto (como AARs não empacotados e dependências remotas pré-dexed). Suas compilações limpas são muito mais rápidas ao usar o cache, porque o sistema de compilação pode simplesmente reutilizar esses arquivos em cache durante compilações subsequentes, em vez de recriá-los. Projetos usando o plug-in Android 2.3.0 e superior usam o cache de compilação por padrão. Para saber mais, leia Melhorar a velocidade de compilação com o cache de compilação.
Nota: A tarefa cleanBuildCache não estará disponível se você desativar o cache de construção.
uso:
janelas
linux / mac
Android Studio / IntelliJ
** gradle / gradlew são arquivos específicos do sistema que contêm scripts - consulte as informações do sistema como executar o script
fonte
Tome cuidado com o daemon gradle, você deve interrompê-lo antes de limpar e executar novamente o gradle.
Pare o primeiro daemon:
Limpe o cache usando:
Execute novamente sua compilação
fonte
O daemon gradle também cria muitos arquivos de texto grandes para cada log de construção. Eles são armazenados aqui:
"XX" é a versão gradle em uso, como "4.4" e "XXXX" são apenas números aleatórios, como "1234".
O tamanho total pode aumentar para várias centenas de MB em apenas alguns meses . Não há como desativar o log, e os arquivos não são excluídos automaticamente e eles realmente não precisam ser mantidos.
Mas você pode criar uma pequena tarefa gradle para excluí-los automaticamente e liberar muito espaço em disco:
Adicione isto ao seu
app/build.gradle
:Para ver quais arquivos estão sendo excluídos, você pode ver a saída de depuração no Android Studio -> Exibir -> Ferramentas Windows -> Compilar. Em seguida, pressione o botão "Alternar exibição" nessa janela para mostrar a saída de texto.
Observe que um Gradle Sync ou qualquer Gradle Build acionará as exclusões de arquivos.
Uma maneira melhor seria mover automaticamente os arquivos para a Lixeira / Lixeira ou, pelo menos, copiá-los para uma pasta Lixeira. Mas eu não sei como fazer isso.
fonte
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
ingradle.properties
. eu faço algumasclean build
e, pela segunda vez, a maioria das tarefas é exibidaFROM-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 o3.4.2/
diretório se foi. Em seguida, faço outroclean build
:FROM-CACHE
como status e a compilação concluída em velocidades ativadas por cache.3.4.2/
diretório é recriado.3.4.2/
diretório está vazio (exceto 2 arquivos ocultos, de tamanho zero).conclusões:
cleanBuildCache
não limpa ou afeta o cache de compilação de forma alguma.Em seguida, eu desativar o cache Gradle removendo
org.gradle.caching=true
a partirgradle.properties
e eu tentar um par declean build
:3.4.2/
diretório continua vazio.mais conclusões:
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!
fonte
3.4.2/
dir vazio . 2. presença dacleanBuildCache
tarefa 3. desabilitar o cache e a reconstrução do gradle build não mostrou nenhuma evidência de tarefas do Android atingindo o cache.Comando:
rm -rf ~/.gradle/caches/
fonte