Разработка для Android в Eclipse: R.java не регенерирует

290

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

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

Из одного из комментариев: "Doing Project → Clean - это то, что вызвало проблему для меня. Очистка удаляет R.java... и по какой-то причине плагин не регенерирует файл".

  • 0
    мое решение при очистке не работало: мне нужно было загрузить Build Tools в SDK manager, а затем перезагрузить систему. У меня ADT 22.3.0.
Теги:
r.java-file

61 ответ

165
Лучший ответ

Этот сайт предлагает:

если вы запустите очистку проекта, он должен восстановить все сгенерированные файлы Java, а именно R.

... и...

В Eclipse в меню "Проект" автоматически создается опция. Это поможет вам создавать файл R.java каждый раз, когда изменения сделал. Опция "Чистый..." также находится в разделе "Проект".

Этот сайт предлагает другое решение.

  • 1
    Кто бы мог подумать, спасибо, ребята +1, здесь у меня была проблема с моим макетом, и поэтому R.Java не создавался. Великолепно! Приветствия.
  • 217
    Doing Project -> Clean не всегда решает проблему.
Показать ещё 12 комментариев
311

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

Решение

  • Убедитесь, что все ссылки R. не разбиты. Исправить все ошибки в ваших XML файлах. Если что-либо в ADK нарушено, R не будет регенерировать.
  • Если вы каким-то образом ударили что-то и создали import android.R в своей деятельности, удалите его.
  • Запустите Проект → Очистить. Это приведет к удалению и восстановлению R и BuildConfig.
  • Убедитесь, что Проект → Создать автоматически. Если нет, создайте его вручную через Menu -> Project -> Build Project.
  • Подождите несколько секунд, пока ошибки не исчезнут.
  • Если это не работает, удалите все внутри папки /gen/folder
  • Если он все еще не работает, попробуйте щелкнуть правой кнопкой мыши свой проект → Инструменты Android → Исправить свойства проекта.
  • Проверьте ваши *. свойства файлы (в корневой папке вашей папки приложения) и убедитесь, что ссылки там не сломаны.
  • Щелкните правой кнопкой мыши свой проект > свойствa > Android. Посмотрите на разделы "Целевая аудитория проекта" и "Библиотека" в правой части страницы. Ваша цель сборки должна соответствовать цели вашего AndroidManifest.xml. Поэтому, если он настроен на таргетинг 17 в AndroidManifest, убедитесь, что целевое имя - Android 4.2. Если ваша библиотека имеет X под ссылкой, удалите и повторно добавьте библиотеку, пока не появится зеленый галочка. Это может произойти, если вы переместили несколько файлов и папок.

Что делать, если R не регенерирует

Это обычно происходит, когда у вас есть сломанный XML файл.

  • Проверьте ошибки внутри ваших XML файлов, в основном в папке /res/
  • Общие места /layout/ и /values/, особенно если вы недавно изменили один из них.
  • Отметьте AndroidManifest.xml. Я нахожу, что часто меняю строку и забываю изменить имя строки из AndroidManifest.xml.
  • Убедитесь, что установлен Android SDK Build-tools. Окно → Android SDK Manager → Инструменты → Конструкторы Android SDK
  • Убедитесь, что при обновлении Android SDK Tools вы также обновляете Android SDK Platform-tools и Android ADK Build-tools. Строка не работает, если они не совпадают.
  • Если вы не можете найти проблему, щелкните правой кнопкой мыши /gen/ → Восстановить из локальной истории... → отметьте R.java → нажмите Восстановить. Даже если это не решит проблему, она устранит дополнительные ошибки, чтобы облегчить задачу поиска.
  • 21
    это должен быть главный ответ!
  • 6
    Действительно, это заставило меня понять, что моя среда все еще нуждается в обновлении инструментов.
Показать ещё 15 комментариев
38

У меня была такая же проблема. Когда я проверил это, я обнаружил, что имя ресурса XML под макетом не имеет правильного соглашения об именах. У него были заглавные буквы. Поэтому я переименовал его, чтобы сделать все буквы строчными, а магия работала.

  • 2
    TNX ... глупо, я думаю, что я мог бы использовать прописные буквы в именах моих макетов
  • 0
    работал и у меня: консоль сообщила об этом: [2010-09-22 16:19:40 - myproject] res \ drawable-ldpi \ downloadNow.png: Неверное имя файла: должно содержать только [a-z0-9_.]
Показать ещё 4 комментария
28

Одна из причин, по которой Rclass может отсутствовать, внезапно возникает, когда в ваших XML файлах имеются ошибки. Например, когда вы добавляете XML файл с заглавными буквами под именем myCoolLayout.xml, который не разрешен. Или когда у вас есть ссылки, которые не указывают на существующие файлы и т.д.

17

В Eclipse просто используйте Project → clean для очистки проекта. R.java будет автоматически (re) -создан.

Если по какой-то причине dosn't не работает: Убедитесь, что файлы layout.xml не содержат ошибок. Eclipse, похоже, здесь немного глючит: иногда он не помещает ошибки в XML и в проводник пакетов. В таком случае: взгляните на представление "console" или "problem" после использования "clean". Там должны отображаться все ошибки. Исправьте их и повторите очистку.

ПРИМЕЧАНИЕ: НЕОБХОДИМО исправить ошибки, которые вы получаете из-за отсутствующего файла R! Просто исправить файлы XML и другие ошибки проекта и использовать clean!

  • 0
    Убедитесь, что ваши соглашения об именах файлов ресурсов верны. @Masi спасибо за подсказку о поиске ошибок в консоли после очистки. это помогло мне.
  • 1
    +1 за "ПРОВЕРЬТЕ КОНСОЛЬ"
10

Быстрое исправление:

Имя пакета в манифесте должно быть таким же, как в папке /src, пакет папок /gen будет автоматически воспроизведен.

Подробное наблюдение:

Обратите внимание на имя пакета в папке /gen. В моем случае это было не так, как в папке /src.

Пакет, указанный в манифесте, относится к папке /gen.

Я попытался добавить пакет с именем папки /src в папку /gen, чтобы узнать, что произошло бы, но это не решило проблему. Затем я продолжил удаление имени пакета, которое не совпадает с именем пакета в папке /src. Этот пакет с именем, который не соответствует папке /src, был воссоздан, как только я удалил его.

Так как ссылка на пакет в манифесте соответствовала тому, который был бессмысленно воссоздан и который не соответствовал пакету в папке /src, было предложено переименовать package = "oldPackage" с помощью package = "srcFolderPackage".

9

Android добавила в SDK инструмент сборки ADT 22 для механизма построения. Вам просто нужно сделать следующие шаги.

  • Обновить инструмент Android SDK
  • Обновление платформы платформы Android SDK
  • Обновить инструмент создания SDK для Android.
  • Добавьте путь вашего инструмента построения к переменной пути. (путь до ---- YOUR DIRECTORY-PATH\android-sdk\build-tools)

Это решит проблему.

  • 1
    Благодарю. Мне не хватало папки Build Tool ...
  • 0
    Добро пожаловать @hopia ..
Показать ещё 1 комментарий
9

У меня была такая же проблема, и я, наконец, нашел проблему: в файле strings.xml я не сохранил строку <string name="app_name">program-name</string>, которая присутствует по умолчанию при создании нового проекта Android. Я думал, что он используется только для программы HelloWord, которая является исходной программой.

Однако AndroidManifest.xml ссылается на это значение, следовательно:

= > Ошибка компиляции;
= > R.java не обновляется;
= > ID не распознаются...

  • 0
    строка в string.xml - это "<string name =" app_name "> название программы </ string>". Извините, у меня была проблема с моим постом.
8

Если ваш R.java не создается, одним из решений является удаление файла макета с именем "blabla.out.xml".

После удаления этого файла попробуйте очистить проект из меню Project → Clean.

  • 0
    у меня тоже работает!
7

Как обобщение ответа Gloux, если у вас есть какие-либо ошибки в каталоге res, тогда R.java не может генерировать - даже если вы очищаете и перестраиваете. Сначала разрешите эти ошибки.

В качестве примера: когда вы добавляете файл изображения, например "myimage-2.jpg", система будет считать эту ошибку, поскольку имена файлов ограничены буквенно-цифровыми значениями. Сделайте обновление в своей директории "res" после добавления каких-либо файлов и просмотрите вывод в окне консоли для любых предупреждений о имени файла.

  • 0
    Именно так! Это случается со мной время от времени, когда я переименовываю строки в моем strings.xml. Это может создать висящие ссылки в моих файлах макета. И это тормозит производство R.java. Жаль, что нет способа реорганизовать XML-идентификаторы.
6

У вас 100% ошибка в XML файле, но проверка XML не показывает вам ошибку. Именно по этой причине вам нужно сначала проверить ваши файлы XML.

6

Если ваша ОС Ubuntu, я могу предложить некоторое предложение:

  • Установите или обновите ia32-lib:

    sudo apt-get upgrade ia32-libs
    
  • Проверьте, имеете ли вы правильное разрешение в папке aapt:

    cd ANDROID/adt-bundle-linux-x86_64-20130522/sdk/build-tools/android-4.2.2
    chmod 777 aapt
    
  • Запустите Eclipse:

    sudo eclipse
    
  • Запустить проект → Очистить в Eclipse

  • 0
    отлично. а также это делает работу ADB. Просто напомните мне, что я должен установить это при переустановке Ubuntu.
  • 0
    такое же решение верно для Debian amd64
Показать ещё 1 комментарий
5

ВСЕГДА полезно взглянуть на вкладку "Проблемы" в Eclipse. В моем случае я получал сообщение об ошибке " android, неспособное разрешить сообщение об ошибке" android-8 ", которое не сгенерировало R.java. Итак, я скорректировал импортированный целевой на тот, который я использовал в файле default.properties, затем я выполнил очистку через Projects- > Clean и voila! R.java автоматически генерируется! Надеюсь, это поможет!

  • 0
    Спасибо за указание на вкладку проблем. Я новичок в Android и затмении, поэтому не использовал его раньше и становился раздраженным. Это первое место, чтобы посмотреть при возникновении этой ошибки.
4

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

4

R.java никогда не будет сгенерирован, если в папке res имеются ошибки. Например, в выпадающей вложенной папке есть два файла с одинаковым именем, один - значок .png, а другой - значок .html.

Вы можете увидеть некоторую ошибку в окне журнала консоли Eclipse, в котором говорится: "Значок записи ресурса уже определен". После удаления icon.html вы можете очистить или просто удалить папку gen. Вы обнаружите, что создан R.java.

4

Убедитесь, что вы не импортируете

android.R;

4

Очистка проекта, закрытие Eclipse, повторное открытие и запуск моего проекта, наконец, заставили моего R.java снова появиться... Надеюсь, он поможет

  • 0
    Я также должен был перезагрузиться, Eclipse жаловался на отсутствие AAPT, но он присутствовал ....
3

Для меня я дважды связал v7 appcompat. В любом случае, в Eclipse, щелкните правой кнопкой мыши имя проекта в Проводнике пакетов или Навигаторе, перейдите в "Свойства", "Android" и снимите все дубликаты в разделе "Библиотека". Возможно, вам понадобится Build → Clean after.

3

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

Вот как я исправил это в Eclipse:

  • Создайте R.java в папке gen вручную и сохраните.
  • После этого перейдите в Project и нажмите "Очистить"

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

R.java был изменен вручную! Возврат к сгенерированной версии!

  • 1
    Anup .. Я сделал это /// Но только чтобы удалить, когда я очистил это ... Проблема все еще не решена для меня!
2

Моя проблема заключалась в том, что appcompat не был в том же каталоге, что и мой проект.

Я нашел это при компиляции моего приложения с Ant.

2

ОК, поэтому ясно, что для этой проблемы может быть много причин. Если вы работаете на 64-битной Linux-машине, и вы просто настраиваете ADT в первый раз, вы можете получить эту проблему, когда R не генерирует автоматически. Проверьте вкладку консоли, и вы увидите ошибку, похожую на:

 'No such file or directory' while attempting to get adb version from '/home/patrick/code/android-sdks/platform-tools/adb'

Если в этом случае вам нужно установить ia32-libs, используя что-то вроде:

 sudo apt-get install ia32-libs

Подробнее см. здесь: Android adb не найден

2

У меня была эта проблема. Случайно я удалил это

xmlns:tools="http://schemas.android.com/tools"

который начал вызывать ошибки сборки во всем проекте в моих XML файлах, а также в моих файлах Java. Как только я перепечатал то, что я удалил, он снова работал:)

2

Очевидно, что нет никакого окончательного ответа на этот вопрос, но здесь другой, который я уже здесь не вижу:

У меня было R.java исчезло после (попытки) Team Synchronize, и в проекте были файлы разрешения конфликтов (т.е. thingy.xml.mine, thingy.xml.r35 и т.д.). Удаление/разрешение конфликтов, регенерированных R.

2

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

Если это не было импортировано, то ресурсы, в которых они были возвращены, были ресурсами по умолчанию, ни один из моих включенных.

С учетом сказанного, если вы обнаружите, что получаете только список ресурсов по умолчанию, просто установите флажок, чтобы убедиться, что вы импортируете application_package_name.R, а не android.R.

1

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

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

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

1

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

1

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

1

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

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

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

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

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

Изображение 6729

1

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

Если вы работаете с графическим интерфейсом XML файлов, все кажется ОК, но когда вы вводите текстовые XML файлы, вы видите беспорядок внутри. Eclipse немного искажает этот материал.

Установить BuildAutomatically, так что после того, как вы исправите свои ошибки, у вас будет файл R.java в сгенерированных файлах.... УДАЧА!!!

1

В моем случае файлы R не генерировались, потому что у меня были файлы XML в моей папке res/ с тем же именем (например, res/layout/filename.xml и res/values/filename.xml).

После того как я изменил один из имен файлов, мои R файлы были сгенерированы снова с помощью опции Build Automatically.

  • 0
    Работает на меня, спасибо!
1

Для меня проблема заключалась в том, что у меня было изображение в папке res с заглавной буквой, то есть с Image.png. Просто поставьте image.png.

Все для lowerCase и это!

1

Я хочу выделить ответ 糞 _ 爺.

Я переименовал цвет из "listcolor" в "color_list", но я не заметил, что один из других макетов ссылался на него. Итак (внезапно) все мои R.string.X и R.layout.X потерпели неудачу на "R".

В конце концов я посмотрел в окне консоли и посмотрел на ошибки. Я думал, что все ссылки на R не найдены, но на самом деле одно из них заключалось в том, что "listcolor" не был найден. Как только я это исправил, другие ошибки исчезли.

Возможно, будущая версия плагина для Eclipse позволит вам переименовать ресурсы в этих XML файлах и распространить их на все ссылки его.

  • 0
    Да, им отчаянно нужно добавить эту функцию! Самые последние инструменты Android для Eclipse (ADT 16) намекают мне, что это будет в следующей версии. Я переименовал некоторые строки, хранящиеся в strings.xml и увидел, что мои изменения автоматически распространяются как минимум на один файл .java, ссылающийся на эти строки, но не на все. Произошла печально известная ошибка «R не может быть преобразована в переменную». Отрадно, что такая функция появляется в списке пожеланий инструментов Android ....
1

Я изменил имя файла XML-макета и позже узнал, что XML файл (поставщик виджета в этом случае) все еще ссылается на старый формат XML, который не существует, и это предотвращает автоматическое создание/коррекцию класса R.

1

Я нашел решение, почему R.class не был сделан Eclipse после его повторного запуска - 2 clean, build и т.д.

Проблема здесь в strings.xml:

<string name="hello">Hello World, HelloAutoComplete!</string>

<string name="app_name">HelloAutoComplete</string>

Они по умолчанию созданы Eclipse при создании проектов.

Определенно вы меняете strings.xml для своего собственного требования. Иногда вы очищаете string.xmls эти две строки из вашего кода:

Это создает проблему в файле AndroidManifest.xml:

<application android:icon="@drawable/icon"  android:label="@string/app_name">
<activity android:name=".HelloAutoComplete" android:label="@string/app_name">

Поэтому он не может связываться с strings.xml.

0

Прежде всего, проверьте вывод консоли.
Затем проверьте, не являются ли ваши имена файлов макетов xml более строчными.
Исправить ошибки xml.
Проверить свойства проекта → Android для чего-то незнакомого

0

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

0

Вот то, что сработало для меня, что другие ответы не сделали:

  • Создайте новый проект приложений для Android,
  • Скопировать все файлы и папки из старого каталога (except/gen) и заменить!
  • Обновить корень проекта в обозревателе пакетов.
  • Если все еще есть, Очистить снова!

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

0

Вот еще один ответ, который я нашел после того, как ни один из предыдущих 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

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

0

Кажется, что все ответы здесь повторяются, чтобы проверить ошибки в XML и очистить ваш проект. Сделай это! Но что, если это не сработает? Вот то, что сработало для меня:

Если вы создаете проект, который генерирует неправильный R, и вы его удаляете, он не будет регенерировать, поэтому удалите этот проект и создайте новый, убедитесь, что вы НЕ проверяете "автоматически строить", тогда вы можете скопировать свои папки в и ТОГДА вы очищаете проект или проверяете "строить автоматически", чтобы он правильно генерировал ваше R.

0

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

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

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

0

Что также вызывает это, если у вас есть scale9, который можно использовать с тем же именем, что и другой файл:

  • img_file.9.png
  • img_file.png

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

0

Если все ответы не удались, вы можете запустить генерацию ресурсов из командной строки: Перейдите в каталог проекта Eclipse. Затем запустите

aapt.exe package -f -v -m -S res -J src -M AndroidManifest.xml -I ANDROID_HOME/platforms/android-XXX/android.jar

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

0

Решите проблему, изменив файл project.properties: Я добавляю цель android-17.

0

Смотрите сообщение в блоге Совет разработчика для Android: регенерация R.java.

Вместо того, чтобы продолжать обнаружение всех мыслимых проблем проблемы, обнаруженных в дикой природе, я решил использовать проверенный подход, глядя на код. Сделав это некоторое время, я заметил несколько красных парней в папке res. Они оставались моей текущей работой по редизайну, которую я собирался удалить, прежде чем все пошло наперекосяк. Разумеется, как только я нажму Del на них, автомобиль Darn R автоматически появится снова.

В одном предложении: Удалите все ненужные файлы из проекта и нежелательный код из файла манифеста.

0

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

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

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

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

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

0

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

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

Консоль:

[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.

Я исправил ошибку с помощью "Исправить свойства проекта", а затем просмотрел журнал, как предлагается. Я прокомментировал XML в упомянутых файлах, временно заменив их на LinearLayout. Когда он исправлен, bam, он снова появляется (если включена функция "Build Automaticly" ). Затем я могу изменить файлы XML, если не было ничего плохого.

0

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

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

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

Я надеюсь, что это кому-то поможет.

0

Я забыл установить атрибут name в теге с объявлением-стиль

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

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

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

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

0

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

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

0

Попробуйте проверить файл project.properties. Возможно, ваш файл JAR для Android в пути сборки не соответствует версии, упомянутой там.

Он решил мою проблему, поскольку я изменил свою цель.

0

Вы можете попробовать еще одну вещь.

Перейдите к C:\Program Files (x86)\Android\android-sdk\tools>, запустите adb kill-server, а затем adb start-server. Это сработало для меня, и я не знаю причины: -).

0

Почти наверняка что-то не так с содержимым, которое будет вставлено в genfile. Eclipse недостаточно умен, чтобы показать, какие проблемы есть или даже указать, что есть проблемы!

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

Я считаю, что иногда Eclipse не любит имена файлов по какой-либо причине, и я должен их изменить.

Итак, добавьте ресурсы один за другим, уверяя, что все это "работает". Когда что-то ломается, попробуйте немного изменить его, пока Eclipse не примет его.

Вы знаете, что он работает, когда появляется genfile - он будет делать это автоматически, если проблем нет.

0

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

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

0

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

0
  • Убедитесь, что ваши файлы XML в порядке, без каких-либо проблем.
  • Убедитесь, что ваш манифест не имеет ошибок.
  • Убедитесь, что в ваших строках нет проблем.

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

0

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

То же самое можно было бы использовать для любых файлов формата .xml, которые ссылаются на те константы, которые вы изменили. К сожалению, ни представление маркеров, ни представление "Проблемы" в Eclipse не сообщают вам, куда вам нужно пойти, чтобы исправить проблемы - просто они не могут найти R.java. Как упоминалось в других ответах, просмотрите Консоль, чтобы узнать, где вам нужно исправить ваши постоянные ссылки, а затем снова очистить проект.

0

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

После исправления некоторых проблем в файлах ресурсов (например, "fill_parent" переименован в "match_parent" ), я обнаружил, что проблема была в файле манифеста: я не проверял проб и ошибок "Определить приложение < > tag в AndroidManifest.xml", сохранили изменения, и R.java волшебным образом снова появился. Затем я снова проверил поле, сохранил файл, и R.java снова был восстановлен.

Наверное, я наткнулся на недостаток Eclipse.

0

В основном файл R.java относится к файлу .xml и Java. Мы знаем теги XML, но как насчет Java, поэтому для этого нам нужно иметь уникальный идентификатор для идентификации тега.

Здесь файл R.java в основном связан с XML файлом с Java для получения значений.

0

В моем случае, после бесконечного закрытия среды IDE, очистки, попытки создания и т.д. проблема была "папкой без названия" внутри моей "res" папки, которую я, вероятно, добавил туда по ошибке.

Я бы хотел, чтобы такие ошибки выводились Eclipse, как Ant script сделал:

[null] invalid resource directory name: /Users/gubatron/workspace.android/my-project/res/untitled folder
0

Не удаляйте эти две строки из strings.xml:

android:icon="@drawable/icon" android:label="@string/app_name"

android:name=".HelloAutoComplete"

android:label="@string/app_name"
  • 0
    Я думаю, вы имеете в виду, что эти строки появляются в вашем файле AndroidManifest.xml . Здесь не так много контекста ... но в любой ситуации, если вы ссылаетесь на ресурс в своем манифесте или XML-файле макета и переименовываете, перемещаете или удаляете этот ресурс, вам нужно исправить соответствующую ссылку в файл манифеста или макета .xml. В противном случае у вас будут проблемы с генерацией R.java .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню