Я пытаюсь перестроить свой проект Android Studio Gradle (содержащий в основном код Kotlin), но он начал выдавать UnableToDeleteFileException
во время процесса очистки / восстановления:
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
Это начало происходить после того, как я попытался изменить структуру пакета моего проекта. К сожалению, я сделал это путем переименования и перемещения исходных папок, а не рефакторинга через Android Studio, что было плохой идеей.
Я искал решение этой проблемы весь день, и вот что я пытался безрезультатно:
- Выполнение синхронизации Gradle;
- Переустановка Java JRE и Java SDK;
- Переустановка последней версии Android Studio (1.4);
- Откат к предыдущей версии AS (1.3);
- Аннулирование кэша AS и перезапуск;
- Удаление каталогов
gradle
и в.gradle
каталоге проекта; - Удаление
.gradle
каталога в моем пользовательском каталоге; - Запуск
gradlew clean
от терминала AS; - Копирование источников вручную в новый проект (странно, что он как-то сохраняется в разных проектах ...)
Вещи, которые я попробовал с небольшим успехом, но позволили мне выполнить еще одну очистку и перестроить, прежде чем ошибка возникнет снова:
- Закрытие AS, удаление файлов сборки вручную и повторное его открытие;
- Завершение
java.exe
процесса во время работы AS (технически это можно сделать каждый раз, но это утомительно и замедляет процесс сборки)
Таким образом, кажется, что процесс компиляции Java может по какой-то причине блокировать файлы сборки, но это также может быть связано с Kotlin. У меня есть (более зрелый) проект Java Android, над которым я работаю, хотя я не могу воспроизвести эту ошибку при очистке. Кажется, это случилось только с моим проектом Kotlin.
Обновить:
Я обнаружил, что проблема вызвана плагином Kotlin для Android. Проблема исчезает, когда я удаляю файл apply plugin: 'kotlin-android'
модуля, build.gradle
и возвращается, когда я снова вставляю его. Не стесняйтесь предложить любое понимание этого.
Обновление 2:
Последнее обновление не является причиной. Я обнаружил, что если проект содержит файл Kotlin, то восстановление и очистка завершаются неудачно. Он продолжает давать сбой, даже если все файлы Kotlin удалены, пока не завершится фоновый Java-процесс, что означает, что он имеет некоторую блокировку для файлов сборки. Я представил ошибку здесь с более подробной информацией и инструкциями по ее воспроизведению: KT-9440