Ошибка: выполнение выполнено для задачи ': app: clean'. Не удалось удалить файл

Я пытаюсь перестроить проект 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, над которым я работаю, хотя я не могу воспроизвести эту ошибку при ее очистке. Кажется, это происходит только с моим проектом Котлин.

Есть идеи?

Заранее спасибо.

Обновить:

Я обнаружил, что проблема вызвана плагином Android Kotlin. Проблема исчезает, когда я apply plugin: 'kotlin-android' из файла build.gradle модуля и возвращается, когда я его build.gradle . Не стесняйтесь предлагать это.

Обновление 2:

Последнее обновление не является причиной. Я обнаружил, что если проект содержит файл Kotlin, восстановление и очистка завершаются неудачно. Он продолжает терпеть неудачу, даже если все файлы Kotlin удалены, до тех пор, пока фоновый Java-процесс не будет убит, а это значит, что у него есть некоторая блокировка файлов сборки. Я отправил здесь ошибку с подробностями и инструкциями по воспроизведению ошибки: KT-9440

Если вы используете бета-версию Android Studio 2.0, эта проблема может появиться (что более вероятно, если вы работаете с файловой системой NTFS), и похоже, что «Instant Run» является виновником. Найдите «Instant Run» в настройках и снимите флажок.

Я зарегистрировал проблему в трекере ошибок.

Я убил все процессы java TM в диспетчере задач, и он позволил мне перестроить

После того, как я отправил отчет об ошибке в трекер Kotlin, я был уведомлен о проблеме 61300 на трекер AOSP. Кажется, это и есть причина. Поскольку в данный момент я ничего не могу сделать, я отвечу на этот вопрос, как ответ, и я обновлю ответ, если ошибка будет исправлена.

Тем временем, если вы используете Windows, я считаю, что нашел обходной путь. Вам нужно будет загрузить LockHunter (на свой страх и риск, конечно), а затем добавить следующее в файл gradle.build вашего модуля, заменив переменную lockhunter на ваш путь к LockHunter.exe:

 task clean(type: Exec) { ext.lockhunter = '\"C:\\LockHunter.exe\"' def buildDir = file(new File("build")) commandLine 'cmd', "$lockhunter", '/delete', '/silent', buildDir } 

Это заставляет LockHunter принудительно и незаметно разблокировать и удалить файлы сборки при запуске приложения: clean.

Попробуйте Файл -> Недействительные кеши и перезапуск

Это сработало для меня

Очистите проект от терминала, используя эту команду «gradlew clean».

введите описание изображения здесь

Удаление intermediates каталога является быстрым решением проблемы.

Когда проект будет перестроен, каталог будет восстановлен.

Для меня это помогает, когда я Exit Android Studio , еще раз нажмите « Clean Project (появляется такая же ошибка), а затем нажмите « Make Project после чего, конечно, Run 'app' в Android Studio.

Найдите программы, которые использовали папку app / build / output / apk , а затем просто удалили папку.

Я думаю, что Android Studio должна удалить старую папку apk перед перестройкой.

Иногда промежуточные продукты создают проблему, поэтому удалите ее и перестройте проект

ИЛИ

просто запустите команду cmd -> gradlew clean

в папке вашего проекта на рабочем месте (его работа для меня)

Решение довольно простое.

Это одно из решений, которое сработало для меня.

Возможно, откроется папка app / build / output / apk вашего проекта.

поэтому просто закройте эту папку и перестройте свой проект. и он будет решен.

Я столкнулся с такой же проблемой в Android Studio 2.2 Preview 1, решение от @AndresSuarez было правильным, но по некоторым причинам я не смог найти процесс JAVA TM в своем диспетчере задач. Поэтому я попробовал следующее решение, и это сработало –

Откройте командную строку и введите TASKKILL /F /IM java.exe . Это автоматически уничтожит все процессы JAVA TM. Теперь снова заново скомпилируйте приложение, оно будет работать.

Кроме того, вы можете создать файл .bat , добавить в него вышеуказанный код и запустить его каждый раз, когда сталкиваетесь с проблемой.

Как было предложено в отчете об ошибке , раскомментируйте строку

 idea.jars.nocopy=false 

в файле idea.properties решил проблему.

Обратите внимание, что это нужно делать каждый раз, когда Android Studio обновляется.

Я решил это в моей ubuntu, как это.

  1. Проверьте процессы, выполняемые в вашей системе (Ubuntu), как в диспетчере задач в окнах.

    Команда терминала Ubuntu для перечисления всех запущенных процессов —-> «gnome-system-monitor»

  2. Завершите или завершите процессы JAVA и ANDROID в списке.

  3. Снова запустите студию и импортируйте проект.

Его работы для меня без проблем. Надеюсь это поможет…

Я думал, что это проблема с процессом, который уже создан и дублирован.

Если вы тестируете локальный бэкэнд (Java-сервлет в локальном движке Google), запущенный процесс блокирует некоторые файлы. Таким образом, вы не можете использовать развертывание. Таким образом, в этом случае вы можете решить эту проблему, остановив локальный бэкэнд перед началом чистки или сборки. Вы найдете опцию в разделе «Run -> Stop backend».

У меня была эта проблема в Android Studio 2.3.

Я просто перезапустил Android Studio, и после этого я мог чистить без жалоб.

Эта проблема появилась мне в стабильном канале android studio 2.0, и решение возникло из-за проблемы, возникшей при обновлении моей студии Android. Я решил это, установив новую студию Android. после удаления всех старых файлов для старой установки. и сохранить очень приятную функцию Instant Run

если у вас все еще есть проблемы, то обновление до последней версии Android Studio (ее 2.1 на данный момент), возможно, было ошибкой со старой версией Android Studio. Теперь это разрешилось для меня.

Очистка проекта в студии Android и запуск снова исправили проблему. Может быть, и «Make Project».

У меня была та же проблема, и я решил ее, переместив папку проекта в раздел ext4

У меня была такая же ошибка, я попробовал несколько способов, но решение для меня работало в том, чтобы удалить папки с папками из / android и / android / app.

run react-native run-android работал для меня.

Я решил это путем глобального поиска отсутствующего каталога в проекте. затем удалите все файлы, содержащие это ключевое слово. он может успешно очиститься после того, как я удалю все .externalNativeBuild build и .externalNativeBuild вручную.

Я использую Android Studio 3.0 Beta 7. Clean Project, Invalidate caches, студия перезапуска не работала, но обновление версии Kotlin до версии 1.1.51 и перезапуск студии разрешили эту проблему для меня.

Для меня это произошло из-за активного процесса отладки . Поэтому, прежде чем очистить или перестроить, обязательно удалите все активные процессы. Чтобы добиться успеха, выполните Invalidate Cashes / Restart .

У меня была такая же проблема, и это сработало для меня:

  1. закрыть Android Studio.
  2. delete промежуточный каталог (пока Android Studio открывается, этот каталог не может быть удален)
  3. снова откройте Android Studio