Разработка для Android в Eclipse: R.java не регенерирует - PullRequest
307 голосов
/ 03 мая 2010

Я обнаружил, что мой R.java никогда не обновляется, поэтому он не содержит информации о моих новых ресурсах, поэтому я решил удалить его и подумал, что Eclipse создаст новый. Но этого не произошло, и у меня нет R.java сейчас. Как я могу восстановить один?

Я использую Windows 7.

Из одного из комментариев: «Выполнение Проекта -> Очистка - вот что вызвало проблему для меня. Очистка удаляет R.java ... и по любой причине плагин не восстанавливать файл. "

Ответы [ 64 ]

1 голос
/ 04 ноября 2012

Когда кажется, что ничего не работает правильно, даже если вы считаете, что все правильно, проверяйте свои XML-файлы один за другим. Ошибка там 100%.

Если вы работаете с графическим интерфейсом XML-файлов, все выглядит нормально, но когда вы вводите текстовые XML-файлы, вы видите беспорядок внутри. Затмение немного глючит для этого материала.

Также установите BuildAutomatics, поэтому после того, как вы исправите свои ошибки, вы получите файл R.java в сгенерированных .... УДАЧИ !!!

1 голос
/ 17 ноября 2012

Эта проблема только что возникла у меня, и, к сожалению, ни одно из предложений здесь не помогло мне. Перепробовав много вещей, я наконец узнал, что произошло, и надеюсь, что это поможет другим.

Вчера я скачал много нового с помощью Android SDK Manager. После этого я обновил плагин Android Eclipse. Сегодня, после очистки Eclipse, файл R исчез и перестал генерироваться.

Причина была в том, что список доступных SDK (в настройках -> android) почему-то был пуст. После повторного указания на правильный каталог он перезагрузился и показал доступные SDK. Когда я закрыл настройки и попробовал другую сборку, все пришло в норму.

На прикрепленном изображении вы видите список уже заполненных SDK. Пока проблема возникала, она была пуста.

Я надеюсь, что это может помочь другим!

Screen with SDKs correctly showing

1 голос
/ 22 мая 2013

Также убедитесь, что у вас установлена ​​последняя версия плагина ADT, и откройте диспетчер Android SDK, чтобы обновить все инструменты SDK до последней версии. Проверьте наличие обновлений в самом Eclipse. Несоответствующие версии вызвали проблему для меня.

1 голос
/ 03 июля 2014

Для меня эта ошибка была вызвана тем, что я пытался дублировать существующий res/menu вместо создания с wizard.

1 голос
/ 13 февраля 2014

Моя проблема была внутри файла меню. Компилятор не предупреждает вас, если в файлах меню есть ссылки на строки, которых нет внутри strings.xml. Проверьте, ссылаются ли ваши item в файлах XML вашего меню на какие-либо строки, которых нет в вашем strings.xml. Обычно в android:title.

1 голос
/ 07 июля 2014

Все эти ответы не могут работать, если вы используете Maven. Решение для меня было добавить

<genDirectory>${project.basedir}/gen</genDirectory>

в разделе конфигурации android-maven-plugin.

0 голосов
/ 15 июля 2013

Есть и другая ситуация, которая произошла со мной. Это было, когда я добавил строку с апострофом в свой файл ресурсов strings.xml, например

<string name="Today">Returns Today’s date</string>

Это было исправлено путем изменения апострофа для другого типа апострофов, например ´.

0 голосов
/ 12 июля 2013

Это также может быть вызвано тем, что у вас есть масштабируемая 9 с таким же именем, как у другого файла:

  • img_file.9.png
  • img_file.png

Простое удаление любого из файлов исправляет его.

0 голосов
/ 19 апреля 2012

У меня была такая же проблема. Оказывается, причина в том, что у некоторых из моих ресурсов были прописные буквы в именах файлов. Я знаю, это звучит тривиально, но просто изменив их на все маленькие буквы, исправил это и снова получил мой файл R.java.

Надеюсь, это поможет.

0 голосов
/ 27 апреля 2014

Если вы используете средство проверки ошибок Lint, оно определит ложный импорт «R». Как только система XML овладеет неправильным концом флешки, все будет потеряно !!!

...