Ответ 1
meh, просто избавьтесь от сгенерированных файлов && & затем рефакторинг.
Gradle → приложение → построить → очистить.
Бета 3 не позволяет переименовывать файлы ресурсов, такие как файлы макета. Он показывает диалог переименования, но при попытке применить изменения он читает следующее сообщение об ошибке:
Refactoring cannot be performed
File .../myapplication/R.java is read-only
Также у меня есть версия Beta 2 в каталоге соседей, и переименование работает отлично. Любые идеи, как это исправить?
UPD: Я сообщил об ошибке (# 65079508), и теперь она помечена как дубликат 65032914 https://issuetracker.google.com/issues/65032914
Итак, проблема еще шире, и если я хорошо ее понимаю, ошибка будет исправлена в какой-то будущей версии Studio.
UPD # 2: Бета-версия 4 выпущена. Ошибка все еще не исправлена.
UPD # 3 Исправлено в бета-версии 5.
meh, просто избавьтесь от сгенерированных файлов && & затем рефакторинг.
Gradle → приложение → построить → очистить.
Я испытываю ту же проблему на бета-версии Android Studio 3.0 3. Я исправил проблему:
Очевидно, это вынуждает вас вручную реорганизовать ссылки на старый файл, но я пробовал около десятка разных вещей (изменение разрешений R.java, Gradle clean, invalidate cache и т.д.), и никто из них не работал.
Любой, у кого есть эта проблема, должен отправить эту ошибку в Android Studio с помощью справки > Отправить отзыв.
Кроме того, есть ли вероятность, что вы также можете использовать несколько папок макетов, как я?
Мне удалось временно его обойти, переместив мой файл 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
. Обязательно удалите его, когда закончите рефакторинг, он будет восстановлен во время процесса сборки.
Очистка не работает для всего. Например, переименование представления невозможно, так как файл R.java автоматически восстанавливается. Я попытался отключить Instant Run, но это тоже не помогло. В конце концов мне пришлось переименовать представление вручную в файле макета.
Из комментариев к биграмме с ошибкой https://issuetracker.google.com/issues/65032914 исправление будет в версии бета-версии Android Studio.