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

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

Обновление:

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

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

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

4b9b3361

Ответ 1

После того, как я отправил отчет об ошибке в трекер Kotlin, я был уведомлен о Issue 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.

Ответ 2

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

Я отправил issue в трекер ошибок.

Ответ 3

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

Ответ 4

Try        Файл → Недействительные кеши и перезапуск

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

Ответ 5

Очистить проект из терминала с помощью этой команды gradlew clean.

enter image description here

Ответ 6

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

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

Ответ 7

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

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

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

Ответ 8

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

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

Ответ 9

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

  • закрыть Android Studio.
  • удалить каталог промежуточных элементов (при условии, что Android Studio будет открыта, этот каталог не может быть удален)
  • откройте Android Studio снова

Ответ 10

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

Ответ 11

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

ИЛИ

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

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

Ответ 12

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

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

Ответ 13

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

Ответ 14

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

  • Проверьте процессы, запущенные в вашей системе (Ubuntu), как в диспетчере задач в Windows.

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

  • Завершить или закончить процессы JAVA и ANDROID в списке.

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

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

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

Ответ 15

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

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

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

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

Ответ 16

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

idea.jars.nocopy=false

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

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

Ответ 17

Для меня виновником является adb, удерживающий файл apk, поскольку я использую его для установки и запуска приложения на своем физическом устройстве через командную строку.

Так просто:

Диспетчер задач> Завершить процесс adb.exe

И тогда файл может быть удален и проект может быть очищен

Ответ 18

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

Ответ 19

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

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

Ответ 20

В Android Studio 3.0 у меня была такая же проблема. Это фиксировало это:

  1. Закрыть Студия
  2. Удалить projectRoot/build/и projectRoot/app/build/
  3. Перезапустить студию

Ответ 21

Я решил с командой:

taskkill /F /IM java.exe

а потом:

gradle assembleDebug 

Ответ 22

Я только что решил эту проблему для себя.

Проблема заключалась в том, что кто-то другой создал файл, поэтому, несмотря на то, что у меня есть права администратора на компьютере, я не смог внести изменения в файл или файлы. Вам необходимо зайти в свойства файла или папки и изменить владельца или добавить владельца. Эта веб-страница подробно объясняет, что нужно делать.

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

Ответ 23

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

Ответ 24

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

Ответ 25

Очистка проекта в студии Android и запуск снова исправили проблему. Возможно также сделать "Make Project".

Ответ 26

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

Ответ 27

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

Ответ 28

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

Ответ 29

У меня была такая же проблема после переноса моего проекта с D: на G: диск, но проверка диска решила мою проблему

Я использовал chkdsk/f/r/x G: ** здесь использовались некоторые ключи командной строки: **

/F Исправляет ошибки на диске

/R Поиск поврежденных секторов и восстановление удобочитаемой информации (подразумевает/F)

/X Заставляет громкость демонтировать сначала, если необходимо (подразумевает/F) (важно)

Примечание: /X важно, потому что он отключит диск, и вы можете вручную удалить каталог сборки вашего проекта,

сейчас перестроить проект

Ответ 30

Мое решение для этого было очень простым (если вы используете Windows). 1- Закрыть Android Studio. 2- Запустите Android Studio в качестве администратора. 3- Вот и все.