У меня ужасный пакет R
не существует, он меня убивает. Код в порядке. У меня есть приложения на рынке, использующие этот код.
Теперь это касается простых webview
приложений. o.0
R.string.app_name
это error'd мой main.xml
и string.xml
все в порядке. Я ооочень запутался.
Я повторно открыл старую версию для "borrow"
некоторого кода, и он был залит, R. errors.
я сделал чистку и ничего не изменилось, кроме импорта R.android
, добавленного вверху.
Я даже загрузился в Netbeans и получаю то же самое. Очистить не получается. Могу я сам записать R.java
файл?
Что это за R
штука? нет R
. должно соответствоватьR.java
Ответы:
Для всех, кто сталкивался с этим, я провел рефакторинг, переименовав папки пространства имен. Я просто забыл также отредактировать AndroidManifest, поэтому и получил эту ошибку.
Убедитесь, что вы это тоже проверили.
источник
Чтобы упростить:
Конечно, заменив
your.app.package
пакет вашего приложения.Во всех классах, которые используют ссылки на ресурсы R, удалите все остальные
import
с помощью.R
, т.е.import android.R;
источник
phonegap platform remove android
иphonegap platform add android
TL; DR , если вы получаете сообщение об ошибке «пакет R не существует», возможные причины:
-> исправить ошибки XML
R
пакета (см.package
атрибут в AndroidManifest.xml)->
R
класс импорта , напримерimport com.example.android.R;
-> или используйте соответствующий пакет в исходном коде, например
package com.example.android;
->, или измените атрибут пакета в AndroidManifest.xml на
<manifest xmlns:android="..." package="com.example.android" ...>
, если это необходимоR
идентификаторы взяты из системных ресурсов-> не импортировать
android.R
, а использовать префикс для идентификаторов-нарушителейandroid.
, например,android.R.layout.simple_list_item_2
вы можете импортировать
android.R
вместо префикса идентификаторов, конечно, но тогда вы больше не сможете импортироватьR
класс приложения и должны иметь префикс идентификаторов приложений, напримерcom.example.android.R.id.main_menu
.R
Класс автоматически генерируется из ресурсов приложения. Он содержитid
s для этих ресурсов и содержится в пакете, названном в<manifest>
теге в соответствующемAndroidManifest.xml
файле.Если в файлах XML ресурсов нет ошибок,
R.java
источник будет создан в подкаталоге пакета нижеgen/
и скомпилирован.В пакете находится еще один
R
классandroid
. Этотandroid.R
класс содержит несколько вложенных классов, которые, в свою очередь, содержатid
s и другие значения для системных ресурсов.Чтобы использовать класс в Java, вы должны назвать класс целым пакетом, например
или импортируйте класс, а затем используйте его без пакета
Вы также можете использовать класс без названия пакета, если и текущий класс, и используемый класс находятся в одном пакете, например
источник
Никогда, никогда не пытайтесь написать класс R самостоятельно!
Вы импортировали правильный класс R в свои файлы?
дела
вместо того
кажется проблемой для многих людей. После очистки и сборки мои классы иногда импортируют не тот.
источник
Если вы разрабатываете в студии Android и изменили имя пакета, вам следует изменить имя пакета в манифесте Android и файле Gradle приложения.
и в файле манифеста
источник
R.java - это автоматически сгенерированный файл, он обычно не компилируется, если у вас есть ошибки в XML-файле.
Нет. Вы не можете написать свой собственный файл R.java, он должен быть сгенерирован компилятором ресурсов.
Проверьте наличие ошибок во всех ваших XML-файлах.
источник
Класс R - это Java-код, автоматически сгенерированный из ваших XML-файлов (макет пользовательского интерфейса, строки интернационализации и т. Д.). Если код раньше работал (как кажется), вам нужно указать своей среде IDE, чтобы как-то регенерировала эти файлы :
источник
Я полагаю, раньше это работало, а теперь нет ..
Это может произойти, если вы измените имя ПАКЕТА в файле МАНИФЕСТА.
Если вы хотите изменить название пакета
источник
com.example.rickydam.txtbooks
наcom.txtbooks.txtbooks
, создав новый проект, и я переместил все в новый проект, но он не смог найти R. Я пробовал аннулировать кеши, синхронизировать с gradle, очистить проект, перестроить проект, переустановить инструменты SDK ... Ничего не работало! Но ваше решение устранило мою проблему! Еще раз спасибо! Продолжайте кодировать!Я только что столкнулся с этой ошибкой при использовании Bazel для создания приложения для Android:
Убедитесь, что ваш
android_library
/android_binary
используетAndroidManifest.xml
с правильнымpackage=
атрибутом, и, если вы используетеcustom_package
атрибутandroid_library
илиandroid_binary
, убедитесь, что он написан правильно.источник
Удалить импорт android.R; из всех файлов .. как только очистите проект и соберите проект .... Он сгенерирует
источник
Пример: Мой пакет - com.example.mypc.f01 , чтобы исправить ошибку, добавьте строку ниже в Activity:
import com.example.mypc.f01.R;
источник
Ниже приведены некоторые методы, которые можно использовать для устранения этой ошибки: -
источник
В моем случае я понял, что создаю несколько пакетов в проекте. В манифесте Android я обнаружил, что имя провайдера неправильно содержит значение MyContentProvider вместо .provider.MyContentProvider. Мой основной пакет (с пользовательским интерфейсом) был co.companyname.database.provider вместо co.companyname.database.
Затем на операторах импорта для затронутого класса я просто щелкнул правой кнопкой мыши и попросил Android Studio (0.8.6) оптимизировать мои операторы импорта. Я также заметил, что если вы ищете .R в строке поиска AS в верхнем правом углу IDE, вы можете найти автоматически сгенерированный файл R.java, который является частью вашего пакета. На этом этапе вам не нужно ничего менять. Studio следует исправить проект после того, как вы исправите файл манифеста Android и выполните повторную сборку.
Еще один момент: в одном классе я использовал toString (). Length () для оценки строки, но заменил их на TextUtils.IsEmpty (stringVal); Не могу придумать ничего другого, что я сделал для решения проблемы.
Надеюсь, это кому-то поможет.
NB - Все это в AS 0.8.6
PS
R.java генерируется автоматически, поэтому прочтите заголовок: / * АВТО-СОЗДАННЫЙ ФАЙЛ. НЕ МОДИФИЦИРУЙТЕ. * * Этот класс был автоматически создан инструментом * aapt из найденных им данных ресурса. Его * не следует изменять вручную. * /
источник
Когда я испытал это, я создал новый проект и скопировал файлы из моего старого проекта в мой новый.
Однако у меня все еще была та же проблема:
R does not exist
. Затем я понял, что скопировал и вставил манифест из своего блокнота в манифесты Android Studio и не изменил имя пакета в файле манифеста.Следовательно, как только я изменил имя пакета в манифесте на имя нового проекта, новый проект, который я создал, работал нормально.
источник
Какие файлы вы импортируете в файлы с ошибкой R?
Насколько я понимаю, файл R состоит в том, что они автоматически создают списки ссылок для всех атрибутов в приложении Android. Следовательно, вы не можете изменить его самостоятельно.
Вы используете Eclipse для создания этого проекта? Были ли ошибки в более старых проектах перед обновлением Eclipse? Какие ссылки содержат ошибки?
Убедитесь, что вы не импортировали другой файл R из другого скопированного кода в другом приложении.
источник
Я сталкиваюсь с этой проблемой каждый раз, когда переключаю компьютеры и пытаюсь импортировать старые проекты из файлов, переданных через USB.
Мой обходной путь - просто создать новый проект и скопировать (перетащить) файлы в среду IDE (в настоящее время использующую Netbeans) и перестроить. Это раздражает и немного хакерское решение, но оно решает проблему.
Если это произойдет с вами, в худшем случае вам, возможно, придется сделать резервную копию ваших файлов, удалить проект и просто перетащить туда файлы и перекомпилировать. Надеюсь, до этого не дойдет, но это будет ваш ядерный вариант.
источник
Вы можете попробовать
Верхнее меню Android Studio> Файл> Недействительные кеши / перезапуск ...
Нажмите на кнопку недействительности кеша / перезапуска, чтобы перезапустить проект.
Снова разрешите R.xxxx.xxx, если некоторая часть класса R класса фрагмента не разрешилась должным образом
затем перестройте свой проект
Надеюсь, поможет
источник
Если вы столкнулись с этой ошибкой в Android Studio:
Проверьте файл (ы) модуля Gradle -> defaultConfig -> applicationId.
Проверьте тег пакета AndroidManifest.xml -> manifest.
Проверьте объявления пакетов во всех файлах src java.
Синхронизация, очистка и восстановление с помощью Gradle.
НИКОГДА не создавайте свой собственный R-файл. R автоматически создается из ваших исходных файлов java и настроек сборки.
источник
У меня было: «ошибка: пакет R не существует», и я предположил, что javac не имеет доступа к R.java.
Итак, я добавил% PROJ_LOC% \ gen к исходному пути, и это сработало! SOURCEPATH =% PROJ_LOC% \ src;% PROJ_LOC% \ gen
Я не использую Android Studio или Ant (или XML).
источник
Если эта ошибка появилась после разрешения конфликтов слияния, может помочь простой проект Build -> Clean.
источник
Только что избавился от ошибки в моем проекте. Я импортировал образец проекта, я изменил папки пакетов, но я не обновил пакет в одном из файлов java.
Наиболее вероятной причиной этой ошибки «пакет R не существует» является неправильное имя пакета в Java или файле манифеста. Убедитесь, что он правильный и синхронизированный, а затем выполните чистую сборку.
источник
Иногда это решается, когда вы просто повторно импортируете проект в Android Studio.
источник
Неверный путь: проект "кэширует" указатели на изображения, и если вы изменили имя пути, например, отрефакторированный пакет или папки. Затем просто напишите букву R еще раз, и редактор предложит правильный путь, и все будет работать. В этом случае ваши имена файлов правильные, а содержимое, указанное в указателе R., присутствует, но путь неверен, поэтому очистка и сборка не будут работать.
источник
Другой случай поломки R. - Обработка аннотаций. .
Некоторая обработка может относиться к классам, расположенным в определенных папках или на определенных уровнях папок. Если вы переместите требуемые классы в другое место, вы можете получить R. как неизвестный класс.
К сожалению, указатель ошибки на эту проблему не проявляется в Android Studio.
источник
Нет смысла писать R.java самостоятельно, потому что он меняется при каждой сборке,
Просто не забудьте использовать R.something, например: R.raw.filename изнутри классов, значение пакета которого аналогично значению пакета внутри AndroidManifest.xml.
поскольку идентификаторы ресурсов R. определены для текущего приложения или библиотеки, и все они проверяются на предмет наличия во время компиляции, поэтому не имеет смысла разрешать доступ к ним из «кода», который не нацелен на текущее приложение или библиотеку и может использоваться в других местах.
источник
Я забыл добавить «имя» моего «пакета» в верхней части моего класса java. Проверьте, действительно ли ваш добавлен.
источник
Ниже работают у меня.
Если первый шаг не сработал, попробуйте второй.
источник
Решаю свою проблему:
.
Перейти к
AndroidManifest.xml
файлу и изменилminSDKVersion="17"
с 19источник