Ошибка: выполнение выполнено для задачи ': 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
Ответы
Ответ 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 у меня была такая же проблема. Это фиксировало это:
- Закрыть Студия
- Удалить projectRoot/build/и projectRoot/app/build/
- Перезапустить студию
Ответ 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- Вот и все.