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

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

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

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

Ответы [ 64 ]

0 голосов
/ 06 февраля 2014

Вот еще один ответ, который я нашел после того, как ни один из предыдущих 30 ответов не помог.

Я нашел свою проблему в файле strings.xml, хотя это очень и очень странно.Я сократил свое приложение до минимума, и это было единственное, что обнаружилось.Я даже могу скопировать его в совершенно новое пустое приложение.

В файле strings.xml это компилируется (и генерируется файл R.java):

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Test_My_App</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
</resources>

Однако этоне:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello_world">Hello world</string>
<string name="app_name">My_App</string>
<string name="action_refresh">Refresh</string>
</resources>

Самое смешное, что я удалил action_settings несколько дней назад.Я очистил свой код с тех пор и никогда не было никаких проблем.Сегодня я добавил дополнительные строки в файл strings.xml, и после очистки кода колеса перестали работать.Кроме того, если я переставлю порядок тех же трех строковых строк и очисту свой код, файл R.java не будет сгенерирован заново.

Вот мое решение для моей конкретной проблемы.

Надеюсь, это кому-нибудь поможет ...

0 голосов
/ 23 января 2014

В моем случае я проверил все предыдущие решения, но не сгенерировал R. Я просто удалил свой файл main.xml из папки меню и заново сгенерировал его. Я не знаю почему, но сейчас это работает для меня ...

0 голосов
/ 18 апреля 2013

Было без ошибок , но три предупреждения , где я использовал жестко закодированный текст для button текстовых атрибутов в моем main.xml. Примерно так:

<Button
    android:id="@+id/scan"
    .....
    android:text="Scan" />

После изменения атрибута text на android:text="@string/scan_device" была немедленно сгенерирована R.java.

Таким образом, это всегда происходит на моем компьютере / Eclipse всякий раз, когда в одном из файлов XML есть какие-либо ошибки / предупреждения.

IntelliJ IDEA не имеет этой проблемы для предупреждений , хотя.

0 голосов
/ 21 марта 2012
  1. Убедитесь, что с вашими XML-файлами все в порядке, без проблем
  2. Убедитесь, что в вашем манифесте нет ошибок
  3. Убедитесь, что в ваших строках нет проблем

Если у кого-то из них есть проблемы, Eclipse может не создать класс R ... Исправьте проблемы, очистите и восстановите ..

0 голосов
/ 12 марта 2013

Я не вижу его здесь в списке, но я столкнулся с проблемой удаления моего R.java и его автоматического восстановления.

Это случилось со мной, когда я имел дело с инструкциями switch и строками. Eclipse предложила изменить соответствие моих проектов до 1.7, что быстро нарушило проект (R.java), поскольку Android не может использовать это соответствие .

* ** 1008 1009 * Консоль
[2013-03-12 17:26:33 - CrimeAtlas] Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.

Я исправил ошибку, используя «Fix Project Properties», а затем просматривая журнал, как предложено. Я закомментировал XML в упомянутых файлах, временно заменив их на LinearLayout. Когда это исправлено, bam, оно появляется снова (если включено «Автоматическая сборка»). Затем я могу изменить файлы XML обратно, если не было ничего плохого.

0 голосов
/ 05 марта 2013

У меня была такая же проблема.

После проверки предупреждения Lint Я увидел предупреждение The resource R.string.app_name appears to be unused ..., поэтому я удалил R.string.app_name.

Этот ресурс требуется в AndroidManifest.xml, хотя Lint предупредил меня о неиспользованном ресурсе. Я добавил "неиспользуемый ресурс" в манифест, и все вернулось в нормальное состояние.

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 26 февраля 2013

Я забыл установить атрибут имени для декларируемого тега

<declare-styleable>
        <attr name="myView" format="reference"></attr>
</declare-styleable>

Я исправил его с помощью

<declare-styleable name="Theme">
        <attr name="myView" format="reference"></attr>
</declare-styleable>

У меня не было ошибок

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

Я столкнулся с этой проблемой впервые сегодня днем. Даже когда я создаю новый проект, R.java не генерируется. Я сменил рабочее место, и все снова работает.

0 голосов
/ 20 февраля 2013

У меня была проблема с моим файлом AndroidManifest.xml, и R.java не был сгенерирован.

Я думаю, что решение состоит в том, чтобы проверить ВСЕ ваши XML-файлы, везде!

0 голосов
/ 14 января 2012

Эта проблема также произошла со мной, когда я пытался собрать Support4Demos из исходного кода SDK.

После исправления некоторых проблем в файлах ресурсов (например, «fill_parent», переименованный в «match_parent»), я обнаружил, что проблема была в файле манифеста. тег в AndroidManifest.xml "флажок, сохраненные изменения и R.java волшебным образом появился. Затем я снова установил флажок, сохранил файл, и R.java был восстановлен снова.

Полагаю, я столкнулся с недостатком Затмения.

...