Файл R.Java не обновляется с идентификатором элемента пользовательского интерфейса

StackOverflow https://stackoverflow.com/questions/2487263

  •  21-09-2019
  •  | 
  •  

Вопрос

Я добавил несколько элементов пользовательского интерфейса в файл main.xml в папке Mayout Res , и когда я пытаюсь получить к ним доступ через вызов, R.layout.my_uielement, элемент пользовательского интерфейса, которого я создал, нет. Даже когда я добавляю новый XML -файл с элементами пользовательского интерфейса, он все еще не отображается в R.layout учебный класс. Я проверил на них идентификаторы, и у них есть правильный формат (я думаю): android:id="@+id/my_button". Анкет В чем может быть проблема? Нужно ли мне сначала собрать код?
ОБНОВИТЬ:
Я уже пробовал adb kill-server тогда adb start-server. Анкет Кажется, это не помогает. Я также попробовал R.id.my_uielement, это тоже не регистрируется.

Это было полезно?

Решение

Это может быть не так для вас, но иногда, когда я использую что -то из пакета Android.r (ресурсы Android по умолчанию) и использую его в своем классе, прежде чем ссылаться на что -либо из моего собственного пакета ресурсов, Eclipse добавляет import android.R; Заявление в моем импорте. Это противоречит поведению по умолчанию неявного взгляда в ресурсах вашего пакета.

Проверьте свои импортные заявления на import Android.R;. Анкет Если он там, удалите его. И, если вы используете что -либо от Android.R, полностью квалифицируйте его, когда вы используете его в коде.

Другие советы

Чистый проект работает нормально. В Eclipse, если вы просто измените некоторые компоненты XML, он не всегда генерирует новый R -файл. Очистка делает это.

Использовать r.id.your_ui_element, а не r.layout.your_element

Я тоже столкнулся с этой проблемой. R.Java не была ни сгенерирована, ни обновлена.

Если r.java не сгенерированный Когда вы создаете проект, запустите свой «пустой» проект. R.Java со ссылками на ресурсы будет автоматически создан.

Если r.java не получает Обновлено, Проверьте наличие обновлений в справочнике -> Проверьте на наличие обновлений в Eclipse и обновите свой SDK и ADT, если это необходимо.

Через 2 дня я нашел способ исправить ...

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

Чистый работает, потому что это СТРОИТЬ Проект после уборки. Таким образом, проблема заключается в том (по крайней мере, это было в моем случае, потому что я отключил автоматическую сборку несколькими днями ранее), что после добавления элемента или чего -либо в файле .xml затмение не строит его и не может Обновить R.Java.

Я заметил, что мой файл r.java не всегда правильно обновляется, когда я добавляю элементы в свой файл strings.xml или в другом месте. Если я использую новое значение, которое я добавил, например, R.String.NewString Фактическое целое значение может все равно указывать на r.String Я еще не прибил рисунок наверняка).

Вы не должны модифицировать файл R.Java, но он ничего не говорит о его удалении (в любом случае, не то, что я видел). Я обнаружил, что удаление R.Java обычно устраняет мои проблемы, связанные с ресурсами, потому что Eclipse немедленно восстанавливает файл с должным образом назначенными целочисленными значениями.

Обратите внимание, что я очень начинающий в Eclipse, так что я могу не понять последствия удаления R.Java, но, похоже, до сих пор для меня работает хорошо. Если то, что я делаю, очень плохо, пожалуйста, дайте мне знать.

Ничто из этого не сработало для меня! Единственный способ получить доступ к @+id/foo это по myPackage.R.id.foo.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top