Android-Как восстановить класс R? [дубликат]


Возможные Дубликаты:
разработка для Android в Eclipse: R.java не генерируя

я импортировал проект в мою Eclipse IDE, но это дает мне ошибку, так как R-файл не генерируется автоматически.

Как я могу отредактировать файл R, чтобы он соответствовал моим требованиям к проекту?

26 76

26 ответов:

на еще один вопрос stackoverflow, кто-то ответил на это : вы должны избавиться от предупреждений и ошибок (синтаксис и ссылки) в ваших xml-файлах. Это плюс делать чистый / построить проект.

проект - > очистить, и выберите опцию для создания проекта.

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

решение

  • убедитесь, что что-нибудь R. ссылки на не сломан. Если он сломан, ADK не может регенерировать R. исправить все ошибки в XML файлы.
  • если вы как-то ударили что-то и создали import android.R в вашей деятельности, удалить.
  • выполнить -8-->Очистить. Это приведет к удалению и регенерации R и BuildConfig.
  • убедится Проект - > Построить Автоматически галочкой.
  • ждать несколько секунд для ошибок, чтобы исчезнуть.
  • если это не работает, удалите все внутри папки /gen/
  • если он все еще не работает, попробуйте щелкните правой кнопкой мыши свой проект - > Android Tools - > Fix Project Properties.

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

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

  • Проверьте ошибки внутри ваших XML-файлов, в основном в папке / res/
  • общие места /макет / и / значения / особенно если вы недавно изменили один из них
  • Проверьте AndroidManifest.XML-код, я найти что часто я меняю строку, и забываю изменить имя строки из AndroidManifest.XML.
  • если вы не можете найти проблему. щелкните правой кнопкой мыши /gen / - > Восстановить из локальной истории... - >галочка R.java - > нажмите кнопку Восстановить. Это не решает проблему, но это очистит дополнительные ошибки, чтобы сделать проблему легче найти.

Я знаю, что здесь уже много ответов, но это первая ссылка на Google, поэтому я собираю все советы здесь и надеюсь, это поможет кому-то еще новичку в этом:)

Ок, я исправил это:

когда я изменил манифест на целевую версию 1.5, появилось миллион ошибок, и только одна не была связана с отсутствием класса R - в атрибутах файла манифеста " targetSdkVersion "и" maxSdkVersion " не существовало в sdk 1.5

из-за этого R класс не смог генерировать.

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

  1. это ошибка, если один .xml-файл ссылается на другой, который не существует и
  2. это ошибка, чтобы иметь прописные буквы в именах файлов (почему это запрещено, я люблю случай верблюда).

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

чтобы снова создать файл R:

  1. изменить что-то в макет->activity_main.xml
  2. сохраните файл
  3. -3-->Очистить...

просто удалите файл R, расположенный в каталоге gen, а затем попробуйте Project->Clean. Затем создайте свое приложение снова.

вы также можете щелкнуть правой кнопкой мыши на project -> Android Tools -> Fix Project Properties. Это должно вызвать R.java класс для повторного создания.

моя проблема была в файле Manifiest. Я удалил значки запуска и не ссылался на новые на Manifiest :)

Я снова открываю eclipse, редактирую один из моих xml-файлов, а затем обнаруживаю, что мой класс activy ссылается на android.R вместо моего пакета "R": -)

для того чтобы регенерировать R.class, вам придется попробовать несколько методов.

  • удалите все R импорт из исходных файлов java:import R.android
  • обязательно откройте панель "проблемы", перейдя в окно->показать вид->проблемы
  • если у вас есть некоторые ошибки в ваших xml-ресурсах, вам нужно будет исправить эти ошибки. В моем случае мне пришлось менять атрибуты ID, чтобы включить знак"+", следующим образом: android:id="@+id/grp_txt"
  • теперь приступим к делу Проект - > Чистый
  • наконец, сделать проект->закрыть проект->открыть

знак " + " указывает на новый идентификатор ресурса и заставляет инструмент aapt создать новое целое число ресурса в R.java класс.

Если вы используете Intellij IDEA, вы можете нажать Build-Rebuild Project

Если вы случайно удалили свой R в eclipse с помощью "project clean" (не делайте этого) Щелкните правой кнопкой мыши на файле проекта - > Восстановить из локальной истории...

воссоздать свой R

Мой Случай:

  • сломанный xml вызвал ошибку в R. (Из-за ä, ö, ü, букв в id)
  • чистый проект удалил мой R.

Что Я Сделал:

  • воссозданный R из местной истории
  • проверено на неправильный импорт R в моих классах (например, импорт android.R) и удалил их
  • исправлен этот xml-файл и сохранено его содержимое во внешнем txt-файле
  • полностью удалил xml из моего проекта.
  • побежал мой проект один раз
  • положите этот фиксированный xml обратно на свое место

и...

  • дал моей подруге большое объятие без причины после того, как испугался, как Халк.

моя проблема была ошибки в XML-файлы. Ошибки не всегда автоматически обнаруживаются в обычном редакторе XML или Редакторе общих манифестов Android,поэтому попробуйте использовать обычный текстовый редактор. Например, какая-то случайная тарабарщина от А.java-файл был вставлен в мой манифест и строки.XML-файл.

щелкните правой кнопкой мыши на любых XML-файлах (скорее всего, в папке /res или AndroidManifest.xml) и нажмите "Открыть с помощью", затем выберите "текстовый редактор."Убедитесь, что все выглядит хорошо, а затем сохранить. Кроме того, убедитесь, что для вашего проекта включено "автоматическое построение". Я удалил свой R.java файл и он был восстановлен с нуля, поэтому нет необходимости восстанавливать его из локальной истории.

попробуйте добавить новый "Android XML-файл", например, в . Это может привести к плагину для регенерации R класса.

вы можете просто изменить любые xml-файлы в папке / res и даже просто добавить место и сохранить, он будет восстановлен.

У меня была та же проблема - "R" отсутствует. И ни один из приведенных здесь советов не помог. К счастью, я нашел причину-каким-то образом Eclipse потерял проект-свойства-цель. Он был расстроен. Я до сих пор не знаю, что это сделало, но возвращение назад помогло. Итак, внимание - отсутствие R может означать отсутствие цели тоже!

Я пробовал все решения выше. Но они к сожалению это не решило мою проблему. Мой R.java исчез, как только я вставил новую картинку в свою рисованную папку. Прочитав ответы на этот вопрос я попытался удалить значок у меня ранее расклеенные (в то время как сборка автоматически включена), и все было хорошо afetr. Надеюсь, это поможет кому-то!

У меня была эта проблема, и я просто щелкнул правой кнопкой мыши на пакете моего проекта и проекта сборки. Мгновенно класс R появился в пакете gen.

в случае, если кто-то еще найдет эту тему при Гугле, как я сделал:

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

import android.R;

что эффективно скрывает проект R вещи. Просто удалите его и все снова будет хорошо...

вы можете использовать Eclipse "восстановление из локальной истории", чтобы восстановить старый файл R, если он был удален. После этого вы, возможно, увидите, что мешает Eclipse создавать ваши файлы (я видел другие ошибки, чем раньше, которые действительно помогли решить проблему).

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

в основном проблема с недопустимым файлом макета. Откройте представление "проблемы" и найдите файлы erros в XML layout. Исправьте их, и класс R будет воссоздан.

в моем случае не было реальной ошибкой. В представлении проблемы была показана ошибка в XML-макете. Редактор также показал ошибку xml. Просто переформатируйте xml с помощью автоматического форматирования с помощью "ctrl-f ""Исправлена" ошибка xml", и класс R был воссоздан.

вы можете просто удалить R.java файл из вашего проекта, и он будет восстанавливаться при условии, что вы автоматически включили сборку. Если у вас нет автоматического включения сборки просто goto project - > build all

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

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

Если нет ошибки на любой .XML-файл. Попробуйте отредактировать любой xml-файл (например, удалить письмо и ввести его назад), а затем сохраните файл, это приведет к созданию R.java.

У меня есть проблема, что findViewById(R.id.edit_text) но возвращает TextView не EditText. Я думаю, что проблема в классе R. ID имеет неправильный идентификационный номер, значит, я чистый проект, то его работает нормально.

в моем случае это был неправильно названный XML-файл, который заставил мой R-файл не перестраиваться. Это не отображается в обозревателе пакетов, но это было показано в LogCat. Обратите внимание на любые предупреждения о ваших файлах res. Независимо от того, сколько раз вы очищаете свой проект, файл R не будет перестраиваться, пока эти ошибки не будут устранены.