Я намагаюся відновити проект Android Studio Gradle (що містить в основному код Котліна), але він почав викидати 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 може з якихось причин поставити замок на файли збірки, але це може бути пов'язано і з Котліном. У мене є (більш зрілий) проект Android Android, над яким я працюю, хоча я не можу відтворити цю помилку при її чищенні. Здається, це трапляється лише з моїм проектом Котліна.
Оновлення:
Я виявив, що проблема викликана плагіном Kotlin Android. Проблема зникає, коли я виймаю apply plugin: 'kotlin-android'
з build.gradle
файлу модуля, і повертається, коли я його знову вставляю. Не соромтеся запропонувати будь-яку інформацію про це.
Оновлення 2:
Останнє оновлення не є причиною. Я виявив, що якщо проект містить файл Kotlin, то відбудова та очищення не вдається. Він продовжує виходити з ладу, навіть якщо всі файли Kotlin видалені, доти, поки фоновий процес Java не буде знищений, це означає, що він має якийсь замок у файлах збірки. Тут я надіслав помилку з більш детальною інформацією та кроками для відтворення помилки: KT-9440