Ответ 1
Для всех, кто столкнулся с этим, Я реорганизую, переименовывая папки пространства имен. Я просто забыл также редактировать AndroidManifest и почему я получил эту ошибку.
Обязательно проверьте это.
Я получаю страшный пакет R
не существует, он меня убивает.
Код в порядке. У меня есть приложения на рынке, на которых работает код.
Теперь он работает с простыми приложениями webview
. o.0
R.string.app_name
is error'd my main.xml
и string.xml
в порядке. Я смущен.
Я открыл более старую версию для "borrow"
некоторого кода, и она была затоплена с помощью R. errors.
. Я сделал чистую и ничего не менял, за исключением добавления R.android
вверху.
Я даже загружаюсь в Netbeans, и я получаю то же самое. Чистота не работает. Могу ли я написать файл R.java
?
Что это за R
? не R
. должен соответствовать R.java
Для всех, кто столкнулся с этим, Я реорганизую, переименовывая папки пространства имен. Я просто забыл также редактировать AndroidManifest и почему я получил эту ошибку.
Обязательно проверьте это.
import your.app.package.R;
Конечно, заменив your.app.package
на ваш пакет приложений.
Во всех классах, которые используют ссылки ресурсов R, удалить любые другие import
с помощью .R
, то есть import android.R;
TL; DR, если вы получите ошибку "пакет R не существует", возможны следующие причины:
R
(см. package
атрибут в AndroidManifest.xml) R
класс, например. import com.example.android.R;
package com.example.android;
<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
для этих ресурсов и содержится
в пакете, указанном в
<manifest>
тег в соответствующем файле AndroidManifest.xml
.
Если в XML файлах ресурсов нет ошибок, источник R.java
будет сгенерирован в подкаталоге пакета ниже gen/
и скомпилирован.
Существует еще один класс R
, расположенный в пакете android
. Этот класс android.R
содержит некоторые вложенные классы, которые, в свою очередь, содержат id
и другие значения для системных ресурсов.
Чтобы использовать класс в Java, вы должны назвать класс целым пакет, например.
java.util.List<Object> list = new java.util.ArrayList<Object>();
или импортируйте класс, а затем используйте его без пакета
import java.util.List;
import java.util.ArrayList;
List<Object> list = new ArrayList<Object>();
Вы также можете использовать класс без указания пакета, если оба текущий класс и используемый класс находятся в одном пакете, например.
package com.example.android;
public class A {
/* ... */
}
package com.example.android;
public class B {
public void useA() {
A a = new A();
}
}
Никогда не пытайтесь сами писать класс R!
Вы импортировали правильный R-класс в свои файлы?
Выполнение
import android.R;
вместо
import com.example.R;
кажется проблемой для многих людей. После очистки и сборки мои классы иногда импортируют неправильный.
R.java - это автогенерируемый файл, который обычно не компилируется, если у вас есть ошибки в XML файле.
Нет. Вы не можете написать свой собственный файл R.java, он должен быть сгенерирован компилятором ресурсов.
Проверьте наличие ошибок во всех ваших xml файлах.
если вы разрабатываете студию android и реорганизовываете имя пакета, вы должны изменить имя пакета в файле android manifest и app gradle.
applicationId "change here your package name"
и в файле манифеста
package="change here your package name"
Класс R - это код Java, автоматически генерируемый из ваших XML файлов (макет пользовательского интерфейса, строки интернационализации и т.д.). Если код раньше работал (как кажется, что это так), вам нужно сообщить своей среде IDE, чтобы как-то восстановить эти файлы:
Я полагаю, что он работал, но теперь это не так.
Это может произойти, если вы измените имя PACKAGE внутри вашего файла MANIFEST
<manifest
package="com.example.android...."
Если вы хотите изменить имя пакета
Удалить импорт android.R; из всех файлов.. как только очистить проект и построить проект.... Он будет генерировать
В моем случае я понял, что создаю несколько пакетов в проекте. В манифесте Android я обнаружил, что имя провайдера неправильно хранило значение MyContentProvider вместо .provider.MyContentProvider. Мой основной пакет (с пользовательским интерфейсом) был co.companyname.database.provider вместо co.companyname.database.
Затем в операторах импорта для затронутого класса я просто щелкнул правой кнопкой мыши и попросил Android Studio (0.8.6) оптимизировать мои операторы импорта. Я также отметил, что если вы ищете .R в строке поиска AS в верхнем правом углу среды IDE, вы можете найти автоматически созданный файл R.java, который является частью вашего пакета. На этом этапе вам ничего не нужно менять. Студия должна исправить проект после исправления файла манифеста Android и его восстановления.
Еще один элемент - это то, что в одном классе я использовал toString(). length() для оценки строки, но менял местами для TextUtils.IsEmpty(stringVal); Не могу придумать ничего, что я сделал для решения проблемы.
Надеюсь, это поможет кому-то.
NB - все это с AS 0.8.6
P.S.
R.java автоматически генерируется, поэтому читайте заголовок: /* AUTO-GENERATED FILE. НЕ ИЗМЕНИТЬ. * * Этот класс автоматически генерируется * aapt tool из найденных данных ресурса. Это * не следует изменять вручную. */
Когда я испытал это, я создал новый проект и скопировал файлы из моего старого проекта в новый.
Однако у меня все еще была та же проблема: R does not exist
. Затем я понял, что скопировал и вставил манифест из моего блокнота в манифесты Android Studio, и я не изменил имя пакета в файле манифеста.
Поэтому, как только я изменил имя пакета в манифесте на новое имя проекта, новый проект, который я создал, работал нормально.
Какие файлы вы импортируете в файлы, получающие ошибку R?
Мое понимание файла R заключается в том, что они автоматически генерируют списки ссылок для всех атрибутов в приложении Android. Поэтому вы не можете изменить его самостоятельно.
Используете ли вы Eclipse для создания этого проекта? Были ли предыдущие проекты получены эти ошибки до обновления Eclipse? Каковы ссылки, которые получают ошибки?
Убедитесь, что вы не импортировали другой файл R из другого скопированного кода в другое приложение.
Я сталкиваюсь с этой проблемой каждый раз, когда я переключаю компьютеры и пытаюсь импортировать старые проекты из файлов, передаваемых через USB.
Мое обходное решение - просто создать новый проект и скопировать (перетащить) файлы в среду IDE (в настоящее время используя Netbeans) и перестроить. Это раздражение и немного хакерское решение, но оно устраняет проблему.
Если это произойдет с вами, в худшем случае вам, возможно, придется создавать резервные копии ваших файлов, удалять проект и просто перетаскивать туда файлы и перекомпилировать. Надеюсь, это не произойдет, но это будет ваш ядерный вариант.
Если вы столкнулись с этой ошибкой в Android Studio:
Проверьте файл модуля Gradle → defaultConfig → applicationId.
Проверьте тег пакета AndroidManifest.xml → manifest.
Проверьте объявления пакетов во всех файлах src java.
Синхронизировать, очистить, а затем перестроить с помощью Gradle.
НИКОГДА не создавайте свой собственный R файл. R автоматически генерируется из исходных java файлов и настроек сборки.
У меня было: "ошибка: пакет R не существует" и предполагается, что javac
не имел доступа к R.java.
Поэтому я добавил% PROJ_LOC%\gen к sourcepath, и он сработает!
SourcePath =% PROJ_LOC%\SRC;% PROJ_LOC%\ген
Я не использую Android Studio или Ant (или XML).
Вы можете попробовать
Главное меню Android Studio > Файл > Недействительный кеш/перезапуск...
Нажмите кнопку invalidate cache/restart для перезапуска проекта
Снова отредактируйте R.xxxx.xxx, если некоторая часть класса класса фрагмента R не решилась должным образом
затем перестройте свой проект
Надеюсь, что это поможет
Если эта ошибка возникла после разрешения конфликтов слияния, может помочь простой проект Build → Clean.
Просто избавился от ошибки в моем проекте. Я импортировал образец проекта, я изменил папки папок, но я не обновил пакет в одном из java файлов.
Скорее всего, причиной этой ошибки "пакет R не существует" является то, что имя пакета в Java или файле манифеста неверно. Убедитесь, что она правильная и синхронизированная, а затем выполните чистую сборку.
Иногда он решается, когда вы просто повторно импортируете проект в Android Studio.
Я решаю свою проблему:
пакет R не существует
.
Откройте файл AndroidManifest.xml
и измените minSDKVersion="17"
на 19