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


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

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

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

30 297

30 ответов:

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

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

...и...

в Eclipse, в меню Project, есть опция build automatically. Это поможет вам построить R.java файл каждый раз изменения являются сделанный. чистка... вариант также есть в рамках проекта.

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

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

решение

  • убедитесь, что что-нибудь R. ссылки на не сломан. исправьте все ошибки в ваших XML-файлах. Если что-нибудь в АДК сломано,R не будет регенерировать.
  • если вы как-то ударили что-то и создали import android.R в вашей деятельности, удалить.
  • выполнить -19-->Очистить. Это приведет к удалению и регенерации R и BuildConfig.
  • убедится Проект - > Построить Автоматически галочкой. Если нет, создайте его вручную через Menu -> Project -> Build Project .
  • ждать несколько секунд для ошибок, чтобы исчезнуть.
  • если это не работает, удалите все, что находится в папке /gen/
  • если он все еще не работает, попробуйте щелкните правой кнопкой мыши свой проект - > Android Tools - > Fix Project Properties.
  • Проверьте *.свойства файлы (в корневой папке вашего приложения) и убедиться, что ссылки там не сломаны.
  • щелкните правой кнопкой мыши проект > свойства > Android. Посмотрите на целевые и библиотечные разделы проекта с правой стороны страницы. Ваша цель сборки должна соответствовать цели в вашем AndroidManifest.XML. Поэтому, если он установлен на target 17 в AndroidManifest, убедитесь, что целевое имя-Android 4.2. Если ваша библиотека имеет X под ссылкой, удалите и повторно добавьте библиотеку, пока не появится зеленая галочка. Это может произойти, если вы переместили несколько файлов и папок вокруг.

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

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

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

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

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

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

если по какой-то причине это не работает:убедится ваш макет.XML-файлы не содержат ошибок. Eclipse, кажется, немного глючит здесь: иногда он не отмечает ошибки в XML или проводнике пакетов. В таком случае: взгляните на представление "консоль" или "проблемы" после использования "clean". Все там должны отображаться ошибки. Исправьте их и повторите чистку.

Примечание: это не обязательно, чтобы исправить ошибки, которые вы получаете из-за отсутствующего файла R! просто исправьте XML-файлы и другие ошибки проекта и используйте clean!

быстро исправить:

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

детального наблюдения:

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

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

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

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

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

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

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

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

  1. обновление Android SDK Tool
  2. обновление Android SDK Platform Tool
  3. обновление Android SDK Build Tool
  4. добавьте путь вашего инструмента сборки в переменную path. (путь до- - - - ваш каталог-путь\android-sdk\build-tools)

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

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

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

как обобщение ответа Глаукса, если у вас есть любой ошибки 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 от порождения. Итак, я исправил импортированный цель к тому, который я использовал в по умолчанию.свойства файл, Затем я выполнил очистку через проекты- > очистить и вуаля! R.java генерируется автоматически! Надеюсь, это поможет!

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

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

android.R;

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

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

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

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

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

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

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

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

для меня, я связал v7 appcompat дважды. Во всяком случае, в Eclipse щелкните правой кнопкой мыши имя проекта в Проводнике пакетов или навигаторе, перейдите в свойства, Android и снимите все дубликаты в разделе Библиотека. Возможно, вам придется построить --> очистить после этого.

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

Я R.java исчезают после (попытки) синхронизации команды, и в проекте были файлы разрешения конфликтов (т. е. 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 через имя моего приложения, например, если у моего приложения был пример имени пакета.затем я обнаружил, что мне пришлось импортировать пример.тест.R для доступа к любому из ресурсов.

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

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

моя проблема была в том, что appcompat не было в том же каталоге, как мой проект.

Я обнаружил это при компиляции моего приложения с АНТ.

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

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

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

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

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

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

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

проблема здесь в строках.XML-код:

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

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

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

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

это делает проблему в AndroidManifest.XML файл:

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

поэтому он не может общаться со строками.XML.

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