Не удалось удалить путь к различным папкам в build/generated/source/r

В течение последних нескольких месяцев я получаю спорадическую, перемещающуюся ошибку времени сборки «Не удалось удалить путь» для папки в папке «build/generated/source/r» (точная папка меняется). Например:

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

Если я посмотрю на папку сборки, я увижу, что

  • Присутствует оскорбительная папка
  • Оскорбительная папка — это первая папка в папке «r».
  • Папка с нарушением пуста
  • Присутствуют последующие папки, каждая из которых содержит 1 файл: R.file

Например, если проблемная папка — «localbroadcastmanager»:

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

Если я попытаюсь построить снова (Build, Make Project), он успешно удалит папку-нарушитель и несколько последующих папок. И тогда он (часто) столкнется с проблемой для другой папки «позже» в дереве файлов.

Если я продолжу попытки построить, это в конечном итоге увенчается успехом, иногда после примерно 20 неудачных попыток.

Если я вручную удалю папку «сборка» (либо в Android Studio, либо через проводник), следующий процесс сборки завершится без ошибок. К сожалению, это требует больших накладных расходов для каждой итерации сборки.

Моя теория заключается в том, что задача сборки gradle рекурсивно удаляет структуру в разделе «source/r». Для каждой папки содержимое папки (R.java) удаляется, а затем удаляется папка. Иногда удаление папки инициируется до завершения удаления файла, что приводит к блокировке папки.

Детали системы

  • Windows 10
  • Android-студия 3.1.4
  • Антивирус: Trend Micro Internet Security 12.0

Вещи, которые я пробовал

  • Android Studio
    • Build, Clean Project
    • Недействительные кеши/перезапуск
    • Удалить папку «сборка» (работает, но не является разумным решением)
  • Anti-virus (Trend Micro)
    • Added "build" folder to "Exception List"
    • Отключенный антивирус
  • Использовал Resource Monitor и Process Explorer, чтобы увидеть, не блокирует ли другой процесс папку
  • Пробные предложения размещены здесь: сообщение StackOverflow: не удалось удалить путь

person Clo Knibbe    schedule 18.09.2018    source источник


Ответы (2)


Я понял. Я использую инструмент резервного копирования (Genie Timeline Home 2017). Инструмент работает, постоянно отслеживая файлы, указанные в наборе сохранений, и периодически (~ каждые 6 часов) делая снимок последних изменений.

Видимо была какая-то прерывистая проблема синхронизации с мониторингом, при удалении содержимого папки, а потом удаление папки. Удаление папки "build" из набора для сохранения решило проблему.

Я использую Genie Timeline в течение многих лет, и эта проблема возникла только в последние несколько месяцев. Не уверен, что изменилось.

person Clo Knibbe    schedule 20.09.2018

Я снова и снова сталкиваюсь с одной и той же проблемой. Каждый раз, когда я удаляю папку Build, я могу успешно создавать приложения, в следующий раз появляется та же проблема. Итак, я сделал следующие вещи, которые сработали для меня

  1. Удалите папку «build» из каталога вашего приложения.
  2. Got to Build -> Make Project (ctrl+F9)
  3. Проект Build->Clean & Build->Rebuild создает новую папку сборки

Теперь приложение должно быть успешно построено. Если нет, выполните шаг 4

  1. Файл -> Недействительные кэши и перезапуск. Это решит вашу проблему
person Sharath Bhargav    schedule 12.06.2019