Erro: falha na execução da tarefa ': app: clean'. Não foi possível excluir o arquivo

166

Estou tentando reconstruir meu projeto Android Studio Gradle (contendo principalmente o código Kotlin), mas ele começou a gerar um UnableToDeleteFileExceptiondurante o processo de limpeza / reconstrução:

Execution failed for task ':app:clean'.
> Unable to delete file: C:\Users\User\KotlinGameEngine\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.0.1\jars\classes.jar

Isso começou a acontecer depois que tentei alterar a estrutura de pacotes do meu projeto. Infelizmente, eu fiz isso renomeando e movendo as pastas de origem em vez de refatorar através do Android Studio, o que foi uma má ideia.

Estive procurando uma solução para esse problema o dia todo, e estas são as coisas que tentei sem sucesso:

  • Fazendo uma sincronização Gradle;
  • Reinstalando o Java JRE e Java SDK;
  • Reinstalar a versão mais recente do Android Studio (1.4);
  • Revertendo para a versão AS anterior (1.3);
  • Invalidar o cache do AS e reiniciar;
  • Excluindo os diretórios gradlee .gradleno diretório do projeto;
  • Excluindo o .gradlediretório no meu diretório de usuário;
  • Executando a gradlew cleanpartir do terminal AS;
  • Copiando manualmente as fontes para um novo projeto (estranho que de alguma forma persista nos projetos ...)

Coisas que tentei com um pouco de sucesso, mas só me permitem executar mais uma limpeza e reconstrução antes que o erro ocorra novamente:

  • Fechando o AS, excluindo manualmente os arquivos de compilação e abrindo-o novamente;
  • Matar o java.exeprocesso enquanto o AS está em execução (isso pode ser feito tecnicamente sempre, mas é entediante e atrasa o processo de compilação)

Portanto, parece que a compilação do processo Java pode bloquear os arquivos de construção por algum motivo, mas também pode ter alguma coisa a ver com o Kotlin. Eu tenho um projeto Java Android (mais maduro) no qual estou trabalhando, embora não possa reproduzir esse erro ao limpá-lo. Parece que só aconteceu com o meu projeto Kotlin.

Atualizar:

Descobri que o problema está sendo causado pelo plug-in Kotlin Android. O problema desaparece quando eu removo apply plugin: 'kotlin-android'o build.gradlearquivo do módulo e volta quando o reinseri. Sinta-se livre para oferecer qualquer insight sobre isso.

Atualização 2:

A última atualização não é a causa. Descobri que, se um projeto contiver um arquivo Kotlin, a reconstrução e a limpeza falharão. Ele continua com falha, mesmo que todos os arquivos do Kotlin sejam removidos, até que o processo Java em segundo plano seja interrompido, o que significa que ele tem algum tipo de bloqueio nos arquivos de construção. Enviei um erro aqui com mais detalhes e etapas para reproduzir o bug: KT-9440

Bryony
fonte
3
invalidar o cache e reiniciar o studio no menu Arquivo.
Mohammad Tauqir
Eu já tinha tentado isso, mas tentei novamente apenas por precaução. Ainda sem sorte.
Bryony2 /
Esse tipo de problema geralmente me ocorre. Se a primeira opção não funcionar, então a sessão a partir do sistema, em seguida, começar estúdio após o login.
Mohammad Tauqir
2
Reiniciei o meu PC e o problema ainda persiste. Obrigado pela sua ajuda.
Bryony

Respostas:

123

Se você estiver usando o Android Studio 2.0 Beta, esse problema poderá aparecer (provavelmente se você estiver trabalhando no sistema de arquivos NTFS) e parecer que o "Instant Run" é o culpado. Procure por "Instant Run" nas configurações e desmarque a caixa.

Arquivei um problema no rastreador de erros.

Irfan
fonte
Estou usando sshfs. O mesmo problema aqui. Desativar a execução instantânea funciona para mim.
canção
2
Sim, desativando IMEDIATO RUN Studio 2.0 beta 7 fez resolvida essa exceção
Yogesh Seralia
1
Meu Android Studio 2.0 ficou parado ao atualizar um projeto específico. Eu tentei de tudo e acidentalmente segui esta resposta e foi resolvida por um problema diferente da pergunta. Fiquei preso por tanto tempo. Eu gostaria de poder te votar mais vezes! Obrigado
Rachita Nanda 12/04
9
Isso funcionou para mim. Caso isso ajude alguém: Para desativar a Execução Instantânea na versão 2.1 do Android Studio, que é Arquivo -> Configurações -> Construção, Execução, Implantação -> Execução Instantânea e desmarque a primeira caixa "Ativar Execução Instantânea ...".
nickandross
1
Estou usando o AS v2.1.3. No meu caso, a caixa "Instant Run" já estava desmarcada, então eu a marquei, apliquei, Limpe e refiz o projeto (o erro ainda estava lá) e depois desmarquei, apliquei, Limpe e refiz o projeto e o erro se foi.
jose
114

Eu matei todos os processos Java TM no gerenciador de tarefas e ele me permitiu reconstruir

Andres Suarez
fonte
29
+1. Processo Java zumbi foi o problema. Se você estiver no Win 10, abra o Gerenciador de tarefas; procure o binário Java (TM) Platform SE; Finalizar tarefa.
Algum estudante Noob
26
Você pode usar gradle --stoppara parar todos os daemons presos como alternativa.
Jayson Minard 06/01
1
Existe alguma maneira automática de matar os processos. Eu perco muito tempo matando-o manualmente em todas as limpezas.
AvatarQing 13/02/2017
No meu caso, houve um Meld aberta (compare e ferramenta de mesclagem) que estava trancando a pasta a limpo
Armando
no meu caso, não encontrei o Java TM, então reiniciei o Windows
Dasser Basyouni 06/03
41

Tente Arquivo -> Invalide Caches e Reinicie

Isso funcionou para mim

Cloy
fonte
O "Invalidate cache and restart" faz com que o Android studio fique preso no Windows 8 PC. Estou usando o Android studio 2.2.2. Eu posso usar esse recurso. Alguém tem uma solução certa para isso?
Nithinjith 28/10
Arquivo -> Invalidar Caches e Reiniciar funciona, mas leva tanto tempo que não está OK. O problema básico dos privilégios de arquivo do Win10 voltou a aparecer para a atualização para o SDK 27 (aceitei a mensagem de atualização). E após a mesma atualização, o AS pede pelo NDK 15, mas existe apenas um NDK14 disponível, defina build SDK de compilação gradle para 26 e ele não irá chorar. Parece que estamos entre duas gerações aqui? No Win10 x64, também há problemas com os emuladores que precisam que os dados sejam limpos para serem reutilizados. Soa como muitos detalhes para corrigir?
Jan Bergström
30

Depois de publicar um relatório de bug no rastreador de erros Kotlin, fui notificado sobre o problema 61300 no rastreador AOSP. Essa parece ser a causa. Como não há nada que eu possa fazer no momento, marcarei esta pergunta como respondida e atualizarei a resposta se o bug for corrigido.

Enquanto isso, se você estiver executando o Windows, acredito que encontrei uma solução alternativa. Você precisará fazer o download do LockHunter (por sua conta e risco) e adicionar o seguinte ao gradle.buildarquivo do seu módulo , substituindo a lockhuntervariável pelo caminho para o LockHunter.exe:

task clean(type: Exec) {
    ext.lockhunter = '\"C:\\LockHunter.exe\"'
    def buildDir = file(new File("build"))
    commandLine 'cmd', "$lockhunter", '/delete', '/silent', buildDir
}

Isso faz com que o LockHunter desbloqueie com força e silenciosamente e exclua os arquivos de compilação quando a tarefa app: clean for executada.

Bryony
fonte
Resolvi o problema de limpeza com isso, mas não consegui fazer o mesmo para executar o aplicativo. Ainda recebe o mesmo erro. Tem alguma ideia; talvez mudar a limpeza com outra coisa?
Codiac
Erro: (21, 0) A declaração de uma tarefa 'limpa' personalizada ao usar os plug-ins de ciclo de vida Gradle padrão não é permitida.
Shashwat Gupta 23/08
26

Limpe o projeto do Terminal usando este comando gradlew clean.

insira a descrição da imagem aqui

Biswajit Karmakar
fonte
2
Digitar o comando acima iniciou um download, descompacte e instale, o que levou algum tempo. Depois disso, esta solução funcionou para mim.
Dale
Demorou 11 minutos para concluir, mas parece funcionar. Um ponto no tempo economiza nove. Essa deve ser a resposta aceita.
mwieczorek
Estou no ubuntu, executei o gradlew limpo conforme as instruções acima, mas não funcionou .. :( .comand não encontrado.
Abhijit Gujar
1
@AbhijitGujar Você deve experimentar o ./gradlew cleanUbuntu. (Ele será executado o gradlewexecutável a partir do diretório do projeto.)
TerraPass
7
./gradlew cleannão resolveu esse problema para mim. Ele mostrou o mesmo erro novamente ou seja, "incapaz de diretório de exclusão"
abggcv
12

A exclusão do diretório intermediatesé uma solução rápida para o problema.

O diretório será reconstruído quando o projeto for reconstruído.

DeaMon1
fonte
1
Tentei excluir o diretório intermediário, mas o Windows diz que não posso excluir o diretório. Esquisito.
tronman
Funcionou para mim em um dos projetos, mas não em outro :(
abggcv 3/17/17
7

Eu estava enfrentando o mesmo problema na visualização 1 do Android Studio 2.2, a solução da @AndresSuarez estava correta, mas por alguns motivos não consegui encontrar o processo JAVA TM no meu gerenciador de tarefas. Então, tentei a seguinte solução e funcionou -

Abra o prompt de comando e digite TASKKILL /F /IM java.exe. Isso matará todos os processos JAVA TM automaticamente. Agora, recompile o aplicativo novamente, ele funcionará.

Além disso, você pode criar um arquivo .bat , adicionar o código acima e executá-lo sempre que enfrentar o problema.

Rohan Kandwal
fonte
5

Eu tive esse problema no Android Studio 2.3.

Eu simplesmente reiniciei o Android Studio e depois disso eu pude limpar sem queixas.

Johan Lund
fonte
5

Para mim, isso aconteceu devido a um processo de depuração ativo . Portanto, antes de limpar ou reconstruir, certifique-se de matar todos os processos ativos. Para determinar o sucesso, execute Invalidate Caches / Restart .

Dmitry Smolyaninov
fonte
4

Eu tive o mesmo problema e isso funcionou para mim:

  1. fechar o Android Studio.
  2. excluir diretório intermediário (enquanto o Android Studio estiver aberto, este diretório não poderá ser excluído)
  3. abra o Android Studio novamente
M. Chavoshi
fonte
4

Eu resolvi com o comando:

taskkill /F /IM java.exe

e depois:

gradle assembleDebug 
Rick
fonte
3

Eu resolvi este no meu ubuntu assim.

  1. Verifique os processos em execução no seu sistema (Ubuntu) como no gerenciador de tarefas no Windows.

    Comando terminal do Ubuntu para listar todos os processos em execução ----> "gnome-system-monitor"

  2. Encerre ou encerre os processos JAVA e ANDROID na lista.

  3. Novamente inicie o estúdio e importe o projeto.

Funciona para mim sem problemas. Espero que isto ajude...

Eu pensei que este era o problema com o processo que já foi criado e duplicado.

HariPrasad
fonte
3

Para mim, ajuda quando Exit Android Studioclico mais uma vez Clean Project(aparece o mesmo erro) e no próximo clique Make Project- depois do Run 'app'botão claro no Android Studio.

y07k2
fonte
3

Encontre programas que usaram a pasta app / build / outputs / apk e exclua a pasta.

Acho que o Android Studio precisa excluir a pasta apk antiga antes da reconstrução.

Mete
fonte
3

Às vezes, os intermediários criam um problema, então exclua-o e reconstrua o projeto

OU

basta executar o comando cmd -> gradlew clean

na pasta do seu projeto no espaço de trabalho (é o trabalho para mim)

Chetan Joshi
fonte
2

A solução é bastante fácil.

Essa é uma das soluções que funcionou para mim.

Pode ser possível que a pasta app / build / outputs / apk do seu projeto esteja aberta.

então feche esta pasta e reconstrua seu projeto. e será resolvido.

Mehul
fonte
sim, eu estava tendo este problema, havia um arquivo de relatório que é salvo no build / relatório / checkstyle.html, fechando esse arquivo resolvido meu problema, graças
tamtom
2

Conforme sugerido no relatório de erros , descomente a linha

idea.jars.nocopy=false

no idea.propertiesarquivo resolveu o problema para mim.

Observe que isso precisa ser feito sempre que o Android Studio for atualizado.

Jose Gómez
fonte
2

Para mim, o culpado é adb segurando o arquivo apk, já que eu o utilizo para instalar e iniciar o aplicativo no meu dispositivo físico através da linha de comando.

Então simplesmente:

Gerenciador de tarefas> Finalizar processo adb.exe

E então o arquivo fica livre para ser excluído e o projeto pode ser limpo

benallansmith
fonte
2

reagir desenvolvedores nativos

corre

sudo cd android && ./gradlew clean

e se você quiser liberar apk

sudo cd android && ./gradlew assembleRelease

Espero que ajude alguém

Muhammad Ashfaq
fonte
1

Se você estiver testando com um back-end local (servlet java no mecanismo local do google app), o processo em execução bloqueia alguns arquivos. Portanto, você não pode viver implantado. Portanto, nesse caso, você pode resolver isso interrompendo o back-end local antes de iniciar a limpeza ou a compilação. Você encontra a opção em "Executar -> Parar back-end".

Tino
fonte
1

No Android Studio 3.0, tive o mesmo problema. Isso corrigiu:

  1. Fechar estúdio
  2. Excluir projectRoot / build / e projectRoot / app / build /
  3. Reiniciar o Studio
Joseph Bani
fonte
1

Eu tive o mesmo problema depois de mover meu projeto de D: para G: unidade, mas a verificação de disco resolveu meu problema

Eu usei chkdsk / f / r / x G: ** aqui algumas opções de linha de comando foram usadas: **

/ F Corrige erros no disco

/ R Localiza setores defeituosos e recupera informações legíveis (implica / F)

/ X Força o volume a desmontar primeiro, se necessário (implica / F) (importante)

Nota: / X é importante porque desmontará a unidade e você poderá excluir manualmente o diretório de compilação do seu projeto,

agora reconstrua o projeto

Sumanpal Singh Saggu
fonte
Isso funcionou. Obrigado! :) Mas demorou quase 5 horas. hora de terminar.
Rohit Sharma
1

Acabei de resolver esse problema exato para mim.

O problema era que outra pessoa havia criado o arquivo e, embora eu tenha direitos de administrador no computador, não foi possível fazer alterações no arquivo. Você precisa acessar as propriedades do arquivo ou pasta e alterar a propriedade ou adicionar propriedade. Esta página da web explica bem passo a passo o que você precisa fazer.

Depois de fazer o acima, encontrei o arquivo no explorador de arquivos e o extraí manualmente. Eu não acho que é necessário no projeto android studio se ele estava tentando excluí-lo de qualquer maneira.

Adam Higgins
fonte
1

Outra aplicação que pode estar usando os recursos é aparentemente o Kotlin REPL do Android Studio. Fechei isso, e então eu poderia construir novamente sem problemas.

user2061182
fonte
0

Esse problema me apareceu no canal estável do android studio 2.0 e a solução ocorreu devido a um problema durante a atualização do meu android studio. Resolvi isso instalando um novo android studio. depois de excluir todos os arquivos antigos da instalação antiga. e para manter o ótimo recurso do Instant Run

Mohamed
fonte
0

se você ainda estiver com problemas, atualize para a versão mais recente do Android Studio (sua 2.1 a partir de agora), pode ser que tenha ocorrido um erro na versão mais antiga do Android Studio. Está resolvido para mim agora.

Ishant Sagar
fonte
Ocorrendo na versão 2.2 da versão 1 para mim, não acho que seja corrigido.
Rohan Kandwal
0

A limpeza do projeto no Android studio e a execução novamente corrigiram o problema. Pode ser que faça "Make Project" também.

sofs1
fonte
0

Eu tive o mesmo problema e resolvi movendo a pasta do projeto para a partição ext4

Ahmed Esameddeen
fonte
Sim, li em outro lugar que o sistema Android Studio / gradle / React Native / empacotador / vigia tem problemas (por algum motivo) nos sistemas de arquivos NTFS.
precisa saber é o seguinte
0

Eu tive o mesmo erro, tentei de várias maneiras, mas a solução funcionou para mim foi excluir pastas de criação dos diretórios / android e / android / app.

correr react-native run-androidfuncionou para mim.

Eltaf
fonte
0

Eu o resolvi pesquisando globalmente o diretório ausente no projeto. exclua todos os arquivos que contenham essa palavra-chave. ele pode ser limpo com êxito depois que eu removo todos os diretórios builde .externalNativeBuildmanualmente.

wdanxna
fonte