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

166

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

Бриония
источник
3
лишить законной силы кэш и перезапустить студию из файлового меню.
Мохаммад Таукир
Я уже попробовал это, но я попробовал это снова на всякий случай. Все же не повезло, хотя.
Брайони
Такая проблема часто возникает у меня. если первый вариант не сработал,
выйдите
2
Перезагрузил мой компьютер, и проблема все еще сохраняется. Спасибо за вашу помощь, хотя.
Брайони
Я решил это, удалив папку сборки из Проводника
Кишан Соланки

Ответы:

123

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

Я подал проблему на трекер ошибок.

Ирфан
источник
Я использую sshfs. Та же проблема здесь. Отключение мгновенного запуска работает для меня.
Песня
2
Да, ОТКЛЮЧЕНИЕ МГНОВЕННОГО ЗАПУСКА Studio 2.0 beta 7 решило это исключение
Йогеш Сералия
1
Моя Android Studio 2.0 застряла при обновлении конкретного проекта. Я попробовал все и случайно последовал этому ответу, и он решил проблему, которая отличалась от вопроса. Я застрял так долго. Хотелось бы, чтобы я проголосовал за тебя еще раз! Спасибо
Рачита Нанда
9
Это сработало для меня. В случае, если кому-то это поможет: отключить Мгновенный запуск в версии 2.1 Android Studio, это Файл -> Настройки -> Построение, Выполнение, Развертывание -> Мгновенный запуск, а затем снимите флажок с первого поля «Включить мгновенный запуск ...».
Никандросс
1
Я использую AS v2.1.3. В моем случае поле «Instant Run» уже было снято, поэтому я проверил его, применил его, очистил и повторно пересмотрел проект (ошибка все еще была), а затем снял флажок, применил его, очистил и повторно пересмотрел проект и ошибку пропал.
Хосе
114

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

Андрес Суарес
источник
29
+1. Зомби Java процесс был проблемой. Если вы используете Win 10, откройте диспетчер задач; искать Java (TM) Platform SE в двоичном виде; Завершить задание
Какой-нибудь Нуб Студент
26
Вы можете использовать, gradle --stopчтобы остановить любые застрявшие демоны в качестве альтернативы.
Джейсон Минард
1
Есть ли какой-нибудь автоматический способ убить процессы. Я трачу так много времени, убивая его вручную в каждой уборке.
AvatarQing
В моем случае был открытый Meld (инструмент сравнения и слияния), который блокировал папку для очистки
Armando
в моем случае я не нашел Java TM, поэтому я перезапустил Windows
Dasser Basyouni
41

Попробуйте File -> Invalidate Caches и перезапустите

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

пресыщать
источник
«Invalidate cache and restart» заставляет Android студию зависать в Windows 8 PC. Я использую Android studio 2.2.2. Я могу использовать эту функцию на всех. У кого-нибудь есть правильное решение для этого?
Nithinjith
File -> Invalidate Caches and Restart работает, но занимает так много времени, что это не нормально. Основная проблема с ошибками прав доступа к файлам Win10 снова пришла для меня обновления до SDK 27 (я принял сообщение об обновлении). И после того же обновления AS плачет по NDK 15, но доступен только NDK14, установите SDK сборки сборки gradle на 26, и он не будет плакать. Похоже, мы здесь между двумя поколениями ?? В Win10 x64 также есть проблемы с эмуляторами, которые требуют повторного использования данных. Звучит как ужасно много деталей, которые нужно исправить?
Ян Бергстрем
30

После того, как я опубликовал отчет об ошибках в трекере ошибок 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 принудительно и бесшумно разблокировать и удалять файлы сборки при запуске задачи app: clean.

Бриония
источник
Я решил чистую проблему с этим, но не смог сделать то же самое для запуска приложения. Тем не менее получить ту же ошибку. Есть идеи? может поменять чистый на что то другое?
Codiac
Ошибка: (21, 0) Объявление пользовательской «чистой» задачи при использовании стандартных плагинов жизненного цикла Gradle недопустимо.
Шашват Гупта
26

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

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

Бисваджит Кармакар
источник
2
Ввод приведенной выше команды запустил загрузку, распаковку и установку, что заняло некоторое время. После этого это решение сработало для меня.
Дейл
Для этого потребовалось 11 минут, но, похоже, это сработало. Шов во времени экономит девять. Это должен быть принятый ответ.
mwieczorek
Я на Ubuntu. Я запустил Gradlew в чистоте, как указано выше, но не работал .. :(. Команда не найдена.
Abhijit Gujar
1
@AbhijitGujar Вместо этого вы должны попробовать ./gradlew cleanUbuntu. (Он запустит gradlewисполняемый файл из каталога проекта.)
TerraPass
7
./gradlew cleanне решил эту проблему для меня. Она снова показала ту же ошибку, т.
Е.
12

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

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

DeaMon1
источник
1
Я пытался удалить каталог промежуточных файлов, но Windows говорит мне, что я не могу удалить каталог. Weird.
Тронман
У меня это работало на одном из проектов, но не на другом :(
abggcv
7

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

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

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

Рохан Кандвал
источник
5

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

Я просто перезапустил Android Studio и после этого смог убрать без нареканий.

Йохан Лунд
источник
5

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

taskkill /F /IM java.exe

а потом:

gradle assembleDebug 
стог
источник
5

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

Дмитрий Смольянинов
источник
4

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

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

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

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

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

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

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

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

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

Харипрасад
источник
3

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

y07k2
источник
3

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

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

Мета
источник
3

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

ИЛИ

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

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

Четан Джоши
источник
2

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

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

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

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

Mehul
источник
да у меня возникла эта проблема, был файл отчета, который сохраняется в build / report / checkstyle.html, закрытие этого файла решило мою проблему, спасибо
tamtom
2

Как указано в сообщении об ошибке , раскомментируйте строку

idea.jars.nocopy=false

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

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

Хосе Гомес
источник
2

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

Так просто:

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

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

benallansmith
источник
2

реагировать на разработчиков

бегать

sudo cd android && ./gradlew clean

и если вы хотите релиз apk

sudo cd android && ./gradlew assembleRelease

Надеюсь, это поможет кому-то

Мухаммед Ашфак
источник
1

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

Tino
источник
1

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

  1. Закрыть Студия
  2. Удалить projectRoot / build / и projectRoot / app / build /
  3. Рестарт Студия
Джозеф Бани
источник
1

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

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

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

/ R Находит плохие сектора и восстанавливает читаемую информацию (подразумевается / F)

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

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

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

Суманпал Сингх Саггу
источник
Это сработало. Спасибо! :) Но это заняло почти 5 часов. время для завершения.
Рохит Шарма
1

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

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

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

Адам Хиггинс
источник
1

Другое приложение, которое может использовать ресурсы, по-видимому, Kotlin REPL из Android Studio. Я закрыл это, и тогда я мог построить снова без проблем.

user2061182
источник
1

я просто запускаю команду cmd -> gradlew clean, и это решает проблему

АБДЕССАМАД ФЕЛУАЧ
источник
0

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

Mohamed
источник
0

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

Ишант Сагар
источник
Происходящий в 2.2 превью 1 для меня, так что я не думаю, что это исправлено.
Рохан Кандвал
0

Очистка проекта в Android Studio и запуск снова исправили проблему. Может быть, сделать "Сделать проект", а также.

sofs1
источник
0

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

Ахмед Эсамеддин
источник
Да, я читал в другом месте, что система Android Studio / gradle / React Native / packager / watchman (по некоторым причинам) имеет проблемы с файловыми системами NTFS.
Venryx
0

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

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

Эльтаф Хуссейн
источник