Я пытаюсь перестроить свой проект 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