Невозможно переименовать файлы ресурсов (макета) (установлена ​​Android Studio 3.0 Beta 3)

Бета 3 не позволяет переименовывать файлы ресурсов, такие как файлы макета. Он показывает диалог переименования, но при попытке применить изменения он читает следующее сообщение об ошибке:

Refactoring cannot be performed
File .../myapplication/R.java is read-only

Также у меня есть версия Beta 2 в соседнем каталоге, и переименование работает отлично. Есть идеи, как это исправить?

UPD: я сообщил об ошибке (#65079508), и теперь она помечена как дубликат 65032914 https://issuetracker.google.com/issues/65032914

Таким образом, проблема еще шире, и, если я хорошо понимаю, ошибка будет исправлена ​​​​в какой-то следующей версии Студии.

UPD#2: выпущена бета-версия 4. Ошибка до сих пор не исправлена.

UPD#3 исправлено в бета-версии 5.


person Roman    schedule 25.08.2017    source источник
comment
Та же проблема возникает у меня после обновления с Beta2 до Beta3, также я больше не могу удалять каталоги или файлы из AS.   -  person    schedule 30.08.2017
comment
Проблема открыта здесь: issuetracker.google.com/issues/65032914 – Пожалуйста, отметьте ее ;- )   -  person Patrick Boos    schedule 01.09.2017


Ответы (5)


эх, просто избавьтесь от сгенерированных файлов && затем рефакторинг.

Gradle --> приложение --> сборка --> очистка.

Очистить проект Gradle (удалить сгенерированные файлы/папки)

person wooldridgetm    schedule 02.09.2017
comment
Очистка папки сборки позволяет переименовать файл, но рефакторинг не может работать без файла R.java. - person Roman; 03.09.2017
comment
Согласованный. Рефакторинг ресурсов не работает, если класс R не существует. После того, как вы сделаете градацию очистки и реорганизуете (или переименуете) интересующий вас ресурс, вы должны перестроить проект. - person wooldridgetm; 04.09.2017
comment
К вашему сведению: под рефакторингом я имел в виду вариант (в Android Studio), позволяющий переименовать ресурс ⇧F6 (macOS). Проблема заключалась в том, что бета-версия Android Studio не позволяла переименовывать. - person wooldridgetm; 04.09.2017
comment
работало, но после очистки три четыре раза! Работает в любом случае!! - person zulkarnain shah; 13.07.2018

У меня такая же проблема в Android Studio 3.0 Beta 3. Я исправил проблему:

  1. Выход из Android Studio
  2. Переход к папке, в которой сохранен файл макета (либо CLI, либо GUI)
  3. Переименуйте файл так, как вы хотите, чтобы рефакторинговый файл назывался.
  4. Снова откройте Android Studio.

Очевидно, это вынуждает вас вручную рефакторить ссылки на старый файл, но я пробовал около десятка разных вещей (изменение разрешений R.java, очистка Gradle, аннулирование кеша и т. д.), и ни один из них не работал.

Любой, у кого возникла эта проблема, должен сообщить об этой ошибке в Android Studio, выбрав «Справка» > «Отправить отзыв».

Кроме того, есть ли вероятность, что вы также используете папки с несколькими макетами как я?

person spitfyre    schedule 26.08.2017
comment
Нет, я не использую несколько папок макетов. Спасибо за совет. Я сообщил об ошибке issuetracker.google.com/issues/65079508. - person Roman; 26.08.2017

У меня такая же проблема. Я решил это с помощью

Файл --> Сделать кэши недействительными и перезапустить --> Сделать недействительными и перезапустить.

А потом попробовать переименовать еще раз.

Надеюсь, это поможет. Удачного кодирования :)

person Bayu Wijaya Permana Putra    schedule 20.07.2018

Я смог временно обойти это, переместив мой файл R.java в мой каталог src. Например, если имя вашего пакета com.example.sample, переместите файл R.java с app/build/generated/source/r/debug/com/example/sample/R.java на app/src/main/java/com/example/sample/R.java. Обязательно удалите его, когда закончите рефакторинг, он будет создан заново в процессе сборки.

person Nathan Reline    schedule 01.09.2017

Уборка подходит не всем. Например, переименование представления невозможно, так как файл R.java автоматически регенерируется. Пробовал отключать Instant Run, но и это не помогло. В конце концов мне пришлось переименовать представление вручную в файле макета.

Из комментариев к заявке об ошибке на странице https://issuetracker.google.com/issues/65032914 исправление будет в бета-версии 5 Android Studio.

person Craig    schedule 03.09.2017