Разработка для Android в Eclipse: R.java не регенерируя
Я узнал, что мой R.java никогда не обновляется, поэтому он не содержит информации о моих новых ресурсах, поэтому я решил удалить его и подумал, что Eclipse создаст новый. Но этого не произошло, и у меня нет R.java сейчас же. Как я могу его регенерировать?
Я использую Windows 7.
из одного из комментариев: "делаем проект ->очистить это то, что вызвало проблему для меня. Очистка удаляет R.java...и по какой причине плагин не восстанавливает файл."
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 для строительного механизма. Вам просто нужно сделать следующие шаги.
- обновление Android SDK Tool
- обновление Android SDK Platform Tool
- обновление Android SDK Build Tool
- добавьте путь вашего инструмента сборки в переменную path. (путь до- - - - ваш каталог-путь\android-sdk\build-tools)
Это решит проблему.
Если ваш R.java не генерируется, одним из решений является удаление файла макета с именем "blabla.из.XML."
после удаления этого файла, попробуйте очистить проект из меню проект ->очистить.
как обобщение ответа Глаукса, если у вас есть любой ошибки
res
каталог, затем R.java может не генерировать - даже если вы чистите и перестраиваете. Сначала устраните эти ошибки.в качестве примера: когда вы добавляете файл изображения, скажем: "myimage-2.jpg", система будет считать это ошибкой, так как имена файлов ограничены буквенно-цифровыми значениями. Обновите каталог " res " после добавления любых файлов и просмотрите вывод в окне консоли для любого предупреждения имени файла.
Если ваша ОС 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
у вас 100% ошибка в XML-файле, но проверка XML не показывает вам ошибку. Именно по этой причине вам нужно сначала проверить свои XML-файлы!
всегда полезно взглянуть на проблемы вкладка в Eclipse. В моем случае, я получал "андроид не удается разрешить андроида-8' " сообщение об ошибке, которое сохранило R.java от порождения. Итак, я исправил импортированный цель к тому, который я использовал в по умолчанию.свойства файл, Затем я выполнил очистку через проекты- > очистить и вуаля! R.java генерируется автоматически! Надеюсь, это поможет!
очистка проекта, закрытие Eclipse, его повторное открытие и запуск моего проекта, наконец, сделали мой R.java чтобы снова появиться... Надеюсь, это поможет
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
ссылки в файлах меню. Проверьте, если вашitem
s в вашем меню 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.