Estou tentando reconstruir meu projeto Android Studio Gradle (contendo principalmente o código Kotlin), mas ele começou a gerar um UnableToDeleteFileException
durante 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
gradle
e.gradle
no diretório do projeto; - Excluindo o
.gradle
diretório no meu diretório de usuário; - Executando a
gradlew clean
partir 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.exe
processo 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.gradle
arquivo 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