IntelliJ IDEA - ничего не может построить, всегда получается, что "пакет R не существует"
Я пытаюсь использовать IntelliJ IDEA для работы с Android-приложением с коллегой, который клянется им, но я не могу построить ни один из проектов Android, которые он ему отправляет, потому что всякий раз, когда я пытаюсь построить, я получаю сообщение об ошибке говоря package R does not exist
.
Я пробовал все, что мог придумать. Примерами и другими примечаниями являются:
-
Убедитесь, что у меня есть версия файла local.properties
, указывающая на корень моей папки Android SDK.
-
С помощью различных настроек в диалоговом окне структуры проекта (я не буду перечислять их все).
-
Проект, над которым я работаю, имеет два проекта библиотеки, также используя класс R
, и они отлично работают.
-
Intellisense в среде IDE распознает класс R
и предлагает материал, который я ожидаю.
Любая помощь будет принята с благодарностью. Я чувствую, что у меня что-то не хватает.
Ответы
Ответ 1
Я новый бренд для IntelliJ, поэтому прошу прощения, если это не сработает для вас. Я столкнулся с той же проблемой, и решение заключалось в том, чтобы добавить в проект Android
Facet
.
(Я нахожусь на Mac, поэтому здесь можно немного отпустить, и, вероятно, есть лучшие способы найти это окно, если да, дайте мне знать!)
- Щелкните правой кнопкой мыши свой проект и перейдите к
Open Module Settings
(кажется, F4 также работает)
- Выберите
Facets
в левом столбце
- Нажмите кнопку +
- Добавьте в проект
Android
Facet
и VOILA!
- Теперь вам может понадобиться импортировать
R
, что может быть огромной болью... так что, надеюсь, кто-то сможет перезвонить с помощью простого способа автоматического импорта
Надеюсь, это поможет кому-то!
Ответ 2
Другим возможным решением для перечисленных здесь является проверка того, что имя пакета в вашем AndroidManifest.xml совпадает с именем вашего фактического пакета:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.yourpackagename" >
Мой пакет строился нормально, пока я не реорганизовал имя пакета, все рефакторизовано, за исключением имени пакета в файле манифеста (см. выше), которое вызвало ошибку "Package R не существует".
Ответ 3
Если вы столкнулись с этим пакетом, который был создан до того, как вам понадобится "Перестроить".
Build- > Rebuild Project. Удаление gen не делает этого, так как IDEA сохраняет реально сгенерированный R где-то еще.
Ответ 4
В моем случае я добавил несколько классов из другого проекта, и мне пришлось добавить импорт в пакет R из моего фактического проекта:
import com.youcompanyname.yourprojectname.R;
Ответ 5
Я начал играть с IntelliJ, так как у меня были проблемы с новой Android-студией и я хотел попробовать что-то более стабильное (я никогда не использовал его раньше). Я попал в ужасную ошибку "пакет R не существует". По моему опыту, это обычно что-то перепутано в XML файле. Для меня проблема была в самом деле с файлом AndroidManifest.xml для модуля библиотеки Android, который я создал для ActionBarSherlock. По какой-то причине, когда он создал файл AndroidManifest.xml, он не удосужился использовать файл AndroidManifest.xml, поставляемый с ABS, и он добавил следующее:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ActionBarSherlockLibrary_4_3_1"
android:versionCode="1"
android:versionName="1.0">
<application
android:label="@string/app_name"
android:icon="@drawable/ic_launcher">
<activity
android:name="ACTIVITY_ENTRY_NAME"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
Когда я создал этот модуль, я выбрал File > New Module...
Затем я выбрал библиотечный модуль в разделе Android и для корня содержимого. Я просмотрел расположение файлов для АБС (другие поля автоматически заполнены правильно, и я не изменил их).
Затем я нажал кнопку "Готово", и мне было предложено сохранить локальный файл или файл памяти для project.properties.
Я решил сохранить локальный файл, и после этого он не подсказывал мне других.
Я понятия не имею, почему это испортило файл AndroidManifest.xml(возможно, то, что я сделал выше, было неправильным...???), но, чтобы исправить это, я просто скопировал исходный файл AndroidManifest.xml, который я загрузил с помощью библиотеки и заменил испорченный файл AndroidManifest.xml. После этого я выполнил Build > Rebuild Project и решил, что ошибки "package R не существуют".
Еще одна мысль: @xbakesx упоминает настройки Facets и для любых модулей, которые вы используете в качестве библиотек, вы должны убедиться, что "Модуль библиотеки" отмечен в разделе "Границы для этого модуля". У меня были некоторые проблемы с этим, когда я пытался выяснить, как настроить библиотеки в IntelliJ/Android Studio (я действительно использовал Eclipse).
Ответ 6
Я просто перезапускаю IntelliJ, и это волшебное решение.
Сначала попробуйте.
Ответ 7
Имела ту же проблему - проблема в том, что в файле манифеста не было настройки по умолчанию по умолчанию.
Ответ 8
Для всех безнадежных людей, которые достигли этого далеко по ответам: я чувствую вашу боль. Я потратил час, ничего не делая, кроме как проделать все эти вещи, а также предложения из других источников. Я проверил все свои ресурсы xml дважды, очистил кеши, перестроил дюжину раз, даже перезапустил всю машину. Вот что на самом деле сработало для меня:
В разделе "Варианты сборки" (нижний левый угол), я выбрал другой вариант сборки (в моем случае релиз вместо отладки) для цели, имел недостающую R-проблему. решил.
Ответ 9
У меня реорганизовано packagename, и intellij не обновил его в манифесте.
Итак, если вы переработали пакетное имя, перейдите в манифест и обновите атрибут "пакет" в корне файла xml save и перестройте его. Если возникают какие-либо ошибки, возможно, это неправильное имя пакета в импорте (по крайней мере, это был мой случай), поэтому просто исправить их
надеюсь, что это поможет кому-то
Ответ 10
В моем случае мне пришлось удалить кеш компилятора intellj. на моей машине для Windows это было нечто вроде:
%USERPROFILE%\.IdeaIC12\system\compile-server\<my project>
Ответ 11
Попробуйте создать новый проект и выберите "Создать проект из существующих источников"
Ответ 12
Добавление моих $0.02 на всякий случай, если у кого-то есть проблема, которую я сделал. В моем случае я создал приложение "Hello world" с помощью IntelliJ и забыл изменить имя пакета из "com.example" . Затем я использовал IntelliJ для реорганизации имени пакета. Это вызвало ошибку при запуске.
Итак, я сделал глобальный поиск для "com.example" , и он был найден в файле AndroidManifest, как упоминалось другими. Однако изменение этого не помогло решить проблему. "com.example" также был найден в "workspace.xml" в каталоге ".idea". Я изменил все вхождения их, сделал пересоздание, а затем снова начал работать!
Это похоже на ошибку в IntelliJ.
Ответ 13
В Android Studio моя проблема заключалась в том, что когда я копировал вставку класса для использования в качестве шаблона для создания другого подобного класса, он просит автоматически импортировать кучу вещей, большинство из которых не будет связано с новым классом, поэтому я сказал отменить. с ним он оставил import com.your.packagename.R;
, поэтому R не был фактически импортирован в файл, в котором я пытался его использовать.
можно установить с помощью alt-enter при нажатии на R (он должен быть выделен красным цветом)