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

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

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

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

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

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

    …а также…

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

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

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

    Решение

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

    Что делать, если R не восстанавливается

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

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

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

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

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

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

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

    Быстрая починка:

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

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

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

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

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

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

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

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

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

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

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

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

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

    Удалив этот файл, попробуйте очистить проект из меню Project -> Clean .

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

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

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

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

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

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

       sudo eclipse 
    4. Запустить проект -> Очистить в Eclipse

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

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

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

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

    android.R;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Хорошо, поэтому ясно, что для этой проблемы может быть множество причин. Если вы работаете на 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 не найден

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

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

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

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

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

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

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

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

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

     ${project.basedir}/gen 

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

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

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

     Hello World, HelloAutoComplete! HelloAutoComplete 

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

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

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

       

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

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

    Interesting Posts

    Несовместимая JVM в GGTS (Eclipse) и JAVA 1.8

    XMLHttpRequest не может загрузить URL-адрес с помощью jQuery

    объявление друга объявляет функцию без шаблона

    Поведение видеоввода HTML5 на iPhone и iPod в веб-приложениях Safari

    C # – выборочное подавление пользовательских устаревших предупреждений

    Возможно ли подключить сигнал к статическому слоту без экземпляра приемника?

    Как искать в PDF-файлах с использованием регулярных выражений?

    Как запустить приложение Play Framework 2.0 в качестве службы Windows?

    Регулярно ли вредит ноутбуку или Windows?

    Что гарантируется относительно размера указателя функции?

    Использование SO_REUSEADDR?

    Использование sed для массового переименования файлов

    Excel 2016: как я могу перемещать данные из строк в столбцы?

    Каков самый быстрый способ передачи файлов между двумя компьютерами?

    Каков наилучший способ отключить неиспользованную беспроводную клавиатуру в диапазоне рабочих приемников?

    Давайте будем гением компьютера.