«Не удалось удалить путь» в различных папках в «build / generate / source / r» - PullRequest
0 голосов
/ 18 сентября 2018

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

enter image description here

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

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

Например, если папкой-нарушителем является «localbroadcastmanager»:

enter image description here

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

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

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

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

Сведения о системе

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

То, что я пробовал

  • Android Studio
    • Сборка, очисткаProject
    • Недействительные кэши / перезапуск
    • Удалить папку «build» (работает, но не является надежным решением)
  • Антивирус (Trend Micro)
    • Добавлена ​​папка «build» в «Список исключений»
    • Отключен антивирус
  • Используется Resource Monitor и Process Explorer, чтобы увидеть, если другой процессимеет блокировку на папку
  • Здесь выложены пробные предложения: Сообщение StackOverflow: не удалось удалить путь

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

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

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

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

File -> Invalidate Cashes и Restart.Это решит вашу проблему
0 голосов
/ 20 сентября 2018

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

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

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

...