J'essaie de reconstruire mon projet Android Studio Gradle (contenant principalement du code Kotlin), mais il a commencé à lancer un message UnableToDeleteFileException
pendant le processus de nettoyage / reconstruction:
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
Cela a commencé à se produire après avoir essayé de modifier la structure du package de mon projet. Malheureusement, je l'ai fait en renommant et en déplaçant les dossiers sources plutôt qu'en les refactorisant via Android Studio, ce qui était une mauvaise idée.
J'ai cherché une solution à ce problème toute la journée, et voici les choses que j'ai essayées en vain:
- Faire une synchronisation Gradle;
- Réinstaller Java JRE et Java SDK;
- Réinstaller la dernière version d'Android Studio (1.4);
- Revenir à la version précédente AS (1.3);
- Invalidation du cache AS et redémarrage;
- Suppression des répertoires
gradle
et.gradle
dans le répertoire du projet; - Suppression du
.gradle
répertoire dans mon répertoire utilisateur; - Fonctionnement
gradlew clean
depuis le terminal AS; - Copier manuellement les sources dans un nouveau projet (bizarre que cela persiste dans les projets ...)
Ce que j'ai essayé avec un peu de succès, mais laissez-moi seulement effectuer un nettoyage et une reconstruction supplémentaires avant que l'erreur ne se reproduise:
- Fermer AS, supprimer manuellement les fichiers de construction et le rouvrir;
- Tuer le
java.exe
processus pendant l'exécution d'AS (cela pourrait techniquement être fait à chaque fois, mais c'est fastidieux et ralentit le processus de construction)
Il semble donc que la compilation du processus Java puisse verrouiller les fichiers de construction pour une raison quelconque, mais cela pourrait aussi être quelque chose à voir avec Kotlin. J'ai un projet Java Android (plus mature) sur lequel je travaille, bien que je ne puisse pas reproduire cette erreur lors du nettoyage. Cela ne semble arriver qu'à mon projet Kotlin.
Mettre à jour:
J'ai constaté que le problème était causé par le plugin Kotlin Android. Le problème disparaît lorsque je supprime apply plugin: 'kotlin-android'
du build.gradle
fichier du module et revient lorsque je le réinsère. N'hésitez pas à donner un aperçu de cela.
Mise à jour 2:
La dernière mise à jour n'est pas la cause. J'ai trouvé que si un projet contient un fichier Kotlin, la reconstruction et le nettoyage échouent. Il continue à échouer, même si tous les fichiers Kotlin sont supprimés, jusqu'à ce que le processus Java d'arrière-plan soit tué, ce qui signifie qu'il a une sorte de verrou sur les fichiers de construction. J'ai soumis un bogue ici avec plus de détails et des étapes pour reproduire le bogue: KT-9440