it-roy-ru.com

"не удается разрешить символ R" в Android Studio

В каждом случае во всех моих классах, где я ссылаюсь на R.id.something, R выделяется красным цветом и говорит: «не удается разрешить символ R». Также каждый раз, когда есть R.layout.something, он подчеркивается красным и говорит "не может разрешить метод setContentView (?)". Проект всегда строит нормально. Досадно видеть это все время. Здесь я прочитал много других вопросов о чем-то похожем, но чаще всего связан с импортом проектов из Eclipse. Я использую то, что я считаю самой последней версией Android Studio, и проект был создан с помощью Android Studio и работал без каких-либо проблем «не могу решить R». Я хотел бы знать, что вызывает это, если кто-нибудь знает.

643
ez4nick

У меня была эта проблема тоже. Простые 'gradlew clean' и 'gradlew build' сделали свое дело.


Нажмите на Построить-> Очистить проект и это произведет очистку gradle

693
Vipassana Vijayarangan

В последних версиях Android Studio, по крайней мере для меня, работает следующее:

«Инструменты» -> «Android» -> «Синхронизировать проект с файлами Gradle»

В последней версии Android Studio 3.1.3 (июль 2018 года) «Синхронизация проекта с файлами Gradle» доступна в строке главного меню.

 enter image description here

221
Tom C.

У меня похожая проблема, и вот что я сделал:

чистый проект и синхронизировать проект с Gradle, 

enter image description here

проверьте версию buildTools в моем sdk enter image description here

Из сборки Gradle (модуля) измените minSdkVersion с 8 на 9 

defaultConfig {
        applicationId "PackageName"
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

Но все это не помогло.

Наконец я нашел ответ (это сработало в моем случае)

Изменить из build.gradle (модуль: приложение) 

Android {
    compileSdkVersion 21
    buildToolsVersion '21.0.1'
......
....
}

Или же 

выберите Файл | Изменение структуры проекта Версия инструментов сборки на 21.1.1

enter image description here

103
Mina Fawzy

Я использовал Gradle 3.3.0. Это был главный виновник. Потрачено впустую 6,50 часов из моей жизни. Gradle 3.2.1 устранил ошибку.

classpath 'com.Android.tools.build:gradle:3.2.1'

Проблема решена после изменения версии Gradle. Подробности истории можно найти здесь .

61
SHAH MD MONIRUL ISLAM
  1. Проверьте ваши XML-файлы.
  2. Чистый Проект.

Это оно.

Например, у меня была запись в моем strings.xml:

<string name="A">Some text</string>

И в activity_main.xml я использовал эту строковую запись

<TextView
Android:id="@+id/textViewA"
Android:text="@string/A"/>

Пока я работал с проектом, я удалил

 <string name="A">Some text</string>

И, следовательно, activity_main.xml стал недействительным. Как результат: не может разрешить Р.

Итак, проверьте ваши *.xml файлы и очистите проект.

53
Iurii

Если вы видите эту ошибку после перемещения файлов или каталогов Java в другие места, то вы можете гарантировать, что Android Studio запуталась. И угадай что? отмена этих действий не решает проблему.

Таким образом, вы пытаетесь очистить, но это не сработает.

И перезапуск тоже не работает.

Но попробуйте File -> Invalidate Caches/Restart ... -> Invalidate and Restart

Android Studio хранит информацию о том, какие файлы зависят от каких других файлов. А поскольку перемещение файлов не реализовано правильно, перемещение файлов вызывает ошибки. И это еще не все: кеши этих зависимостей используются для ускорения сборки.

Это означает, что вам нужно не только перезапустить, но и аннулировать эти кэши, чтобы восстановить (или, точнее, восстановить) здравомыслие.

47
Scott Biggs

Кажется, есть много причин для этой проблемы. Недавно я добавил тестовое действие с названием NewActivity. Это создало файл с именем res/menu/new.xml, и gradle не понравилось это имя, потому что new является зарезервированным Word.

gradlew clean

или же 

"Tools" -> "Android" -> "Sync Project with Gradle Files"

Это, безусловно, хорошие вещи, которые стоит попробовать, но у вас могут возникнуть другие проблемы, которые необходимо решить, прежде чем запускать эти команды.

28
chawkinsuf

Я думаю, если вы поместите ваши файлы деятельности в другую папку, чем по умолчанию. Вам нужно импортировать com.example.yourproject.R (это файл R вашего проекта, а не файл Android.R) во ВСЕ действия, использующие R. Например, в файле MainActivity вставьте эту строку:

import com.example.yourproject.R; 

24
ninjahoahong

Ваш код только что зашифрован. Ответ довольно прост.

Just go to **Build** --> **Clean Project**. 

Это должно делать свое дело.

Я сейчас использую Android Studio 3.0.1.

14
lloydyu24

Вы недавно обновили свои инструменты SDK? Запустите менеджер Android SDK и убедитесь, что у вас установлены новейшие инструменты SDK, которые теперь отделены от инструментов платформы. У меня была такая же проблема, когда я впервые обновил свой менеджер SDK, пакет SDK build tools не показывался для установки/обновления, пока я не закрыл и не открыл заново менеджер SDK.

13
invertigo

Брат, файл R.Java содержит ссылку между XML и страницей Java. «R не может быть решена» возникает только в том случае, если есть проблема с некоторыми из ваших файлов ресурсов. Таким образом, лучший и эффективный способ - удалить последний созданный файл XML или файл в формате res. а затем снова начать оттуда в соответствии с нормами кодирования Android. Это единственный способ. Эффективный и правильный путь. 

Также используйте Git для правильного отслеживания кода. .. 

Удачного кодирования .. :)

12
Minto

Просто очистите ваш проект и синхронизируйте проект с Gradle File.enter image description here

И проблема будет решена.

12
Arunendra

У меня недавно была эта проблема, и очистка/сборка и т.д. Не решили ее. Я догадывался, что где-то возникла проблема, но не был уверен, где ее можно найти (было ли это в манифесте, файлах ресурсов XML и т.д.?).

Когда что-то не так, вы можете узнать, что это такое, выполнив анализ кода.

Из меню вверху выберите:

Анализ -> Проверка кода, сканирование всего проекта с использованием профиля «По умолчанию».

Результаты ваших проверок будут содержать элемент под названием «Android». Здесь вы получите список всего, что вызывает проблемы в ваших ресурсах и файле манифеста. Ошибки откроют сгенерированные XML-файлы из вашей сборки, которые будут отображать все ошибки красным цветом.

Моя точная проблема была вызвана тем, что я использовал файлы манифеста на основе ароматизатора и случайно скопировал некоторые разрешения внутри тега <application> в ароматизаторе.

 Inspection

UPDATE: У меня возникла проблема после того, как Android Studio по-прежнему показала ошибку после исправления, хотя теперь я могла собирать и запускать отлично, пока ошибка все еще была. (Я управляю сборкой канареек, так что пока что это так)

11
Matthew Cawley

У меня было это с

  1. Заглавная буква в моих ресурсах.
  2. Импорт Android.R, добавляемый Android Studio (или Eclipse) 
  3. Ошибка в XML-файле
9
Ryan Heitner

Просто зайдите в список Android Top Top. нажмите Build Menu, в разделе Build нажмите Rebuild Project.

 enter image description here

9
Gundu Bandgar

Я столкнулся с этой проблемой, когда я вручную переименовал папку домена моего приложения. Чтобы решить эту проблему, мне пришлось 

  1. Установите правильную структуру папок package для <manifest> в AndroidManifest.xml.
  2. Установите новое местоположение пакета для Android:name из <activity> в AndroidManifest.xml.
  3. Очистить кеш

Меню Файл -> Недействительные кеши/перезагрузка ...

Проблема исчезнет, ​​как только Android-студия перезапустится и создаст новый индекс.

9
Sridhar

Мне пришлось импортировать мой пакет R в Android-студию. Например: import com.example.<package name>.R

8
Pervy Sage

Do: Build> Чистый проект

ВАЖНО: убедитесь, что у вас нет ошибок после очистки проекта на панели сообщений (Alt + 0). Если вы обнаружите какие-либо красные кружки с восклицательным знаком, вы должны удалить эти ошибки в своем коде. 

В основном эти ошибки связаны с @ string/или @ array /. Чистый проект снова и готово! 

7
Hassan Naqvi

Мне было трудно исправить это самостоятельно.

  • Убедитесь, что в файлах layout.xml нет ошибок.
  • Перейти к Построить> Чистый проект

Это сработало для меня, надеюсь, это сработает и для вас.

7
Oussama Essamadi

У меня была такая же проблема, и это происходит, когда я создаю новый проект. 

Что я делаю, это:

  • проверить наличие обновлений SDK 
  • затем обновления студии Android, 
  • затем снова откройте проект 
  • откройте файл andoridmanifest.xml 
  • сотрите пробел между "_>" в ярлыке Android: и сохраните. 

Это подходит для меня. 

7
Elsanty

Построить> Чистый проект

Это сработало для меня. Несколько раз возникала одна и та же проблема, и это, кажется, исправило ее. Если вы не изменили что-то или не назвали переменную R. Эта проблема обычно возникает из ниоткуда, когда это происходит со мной, поэтому я представляю, что просто Android-студии волнуются. ха-ха

Желаем удачи и удачи в ваших проектах.

7
S.Pedro

У меня есть особый случай для этой проблемы. 

В моем проекте все идет хорошо, его можно скомпилировать и собрать успешно, но в моей Android Studio IDE (и я тоже пробовал Intelligent IDEA, они в той же ситуации) файл R.Java не может быть решен хорошо и всегда будет падение в красной линии. 

Именно так:  enter image description here

Это почти сводило меня с ума, я не могу вынести цвет чтения, когда я программирую. 

Наконец я обнаружил, что эта хитрая проблема вызвана размером файла моего R.Java . Мой проект очень большой, он поддерживает многоязычность и многоэкранные размеры. Существует так много ресурсов, что размер файла моего R.Java составляет около 2.5M.

Максимальный размер файла в Android Studio составляет 2,5 М в настройках по умолчанию, поэтому файлы, размер которых превышает это ограничение, не могут быть разрешены должным образом. И вы можете изменить настройки по умолчанию в "AndroidStudio-root/bin/idea.properties".

изменить эту строку:

idea.max.intellisense.filesize=2500

к:

idea.max.intellisense.filesize=5000

Затем перезапустите Android Studio, красный цвет исчез, я снова могу программировать.

7
Fido Zhang

Это очень старый вопрос, но он все еще часто случается, и здесь нет исчерпывающего ответа. 

У меня была эта проблема больше раз, чем я хочу признать. Это может быть вызвано множеством проблем, которые в основном связаны с тем, что структура вашего проекта не соответствует ожидаемой. Вот список всех проблем, которые у меня были:

Импорт из Eclipse в Android Studio не всегда работает гладко, особенно в старых версиях Android Studio. Убедитесь, что вы используете правильное дерево каталогов. Это должно выглядеть так для умеренно зрелого приложения:

AppName/        // AppName is your app's name, obviously
    .gradle/    // This is a compiler created directory. You should normally leave it alone
    .idea/      // Ditto
    build/      // This too
    gradle/     // And this
    app/
        build/
        libs/
        src/
            androidTest/   // Tests based on the Android instrumentation runner should go here
            main/
                Java/
                    fully/           // Typically com
                        qualified/   // the domain name. Longer package 
                                     // names may have deeper folder trees
                            AppName/ // All your Java files go here
                res/
                    drawable-*/      // One of these for each resolution you support
                    layout/          // All of your general layouts
                    menu/            // All of your menu layouts
                    values/          // All of your resource xml files
                    xml/             // PreferenceScreen layouts go here
                AndroidManifest.xml
            debug/         
            test/          // Pure jUnit tests should go here
        .gitignore
        app.iml
        build.gradle   // This is the gradle file you should be making most changes to
        proguard-rules.pro
    .gitignore
    build.gradle       // This gradle file should mostly be left alone
    gradle.properties
    gradlew
    local.properties
    AppName.iml
    settings.gradle

Это может выглядеть не так в вашей IDE. Над деревом файлов есть раскрывающийся список, который отображает ваши файлы по-разному, и по умолчанию в моей системе он называется Android, который разбивает ваши файлы на различные типы. Такую проблему легче решить из той, которая называется Project, и еще проще - непосредственно из файловой системы вашей ОС, потому что Android Studio сворачивает папки, содержащие только одну папку, в одну строку.

Особенно, если вы когда-нибудь измените имя своего приложения, вам нужно убедиться, что дерево исходного кода main/Java/com/domain/AppName обновлено. Также убедитесь, что тег пакета в вашем AndroidManifest.xml правильный.

Если в ваших файлах Gradle или в AndroidManifest.xml есть ошибки, это помешает Android Studio правильно создавать файлы ресурсов. Файлы Gradle могут быть повреждены при обновлении Android Studio, особенно в версиях до 1.0. Иногда это происходит потому, что он перестает поддерживать старые версии плагина Gradle, поэтому вам нужно обновить номера версий. Иногда бывает трудно найти текущие версии. На сегодняшний день, 17.07.15, мои приложения хорошо компилируются с com.Android.tools.build:gradle:1.2.3. Это находится в блоке зависимостей во внешнем файле Gradle, 

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

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

По моему опыту, иногда Android Studio просто бездействует, и вам нужно перезагрузить его и/или ваш компьютер. Я не знаю почему, но иногда это работает.

Если у вас есть два ресурса xml с одинаковыми именами, в каталогах, которые не перекрывают друг друга, вы можете столкнуться с этой проблемой. Например, у вас могут быть одинаковые имена в drawable-mhdpi и drawable-xhdpi, потому что они переопределяют друг друга в зависимости от целевого устройства, но если у вас одинаковое имя в макете и в меню, это вызовет проблему. Переименуйте или удалите один из файлов.

Если только некоторые ресурсы имеют эту проблему, эти ресурсы, скорее всего, находятся в неправильном каталоге.

В одном случае мне пришлось полностью переустановить Android Studio. Я не знаю, что случилось, но это сработало.

В одном случае я переместил весь свой проект в другой каталог и повторно импортировал его как новый проект. Я не знаю, что случилось, но это сработало.

Файлы XML с зарезервированными словами для имен могут вызвать эту проблему. Переименуйте или удалите их.

Есть несколько способов, которыми ваш файл Gradle может в конечном итоге ссылаться на версию инструментов сборки, которые вы не установили. Исправьте это, изменив Gradle или загрузив соответствующие инструменты сборки.

Наконец, после того, как вы исправили все, что не так, вам нужно очистить свой проект Gradle. Вы делаете это, перейдя в меню Build вверху и выбрав Clean Project.

7
TBridges42

Эта запись, кажется, работает нормально. 

Android:id="@+id/viewID"

Панель дизайна Android Studio, кажется, не работает хорошо.

5
Tevin J

Та же проблема. Началось, когда я добавил несколько изображений в свою папку для рисования и попытался получить к ним доступ. Также добавленные изображения имели расширение с заглавными буквами. Это, похоже, привело к сбою сборки, так как даже если я переименовал их, сообщение было таким же, а R был недоступен. Что я сделал, так это то, что в файле .iml я искал excludeFolder и удалил их (как показано ниже):

  <excludeFolder url="file://$MODULE_DIR$/build/apk" />
  <excludeFolder url="file://$MODULE_DIR$/build/assets" />
  <excludeFolder url="file://$MODULE_DIR$/build/bundles" />
  <excludeFolder url="file://$MODULE_DIR$/build/classes" />
  <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" />
  <excludeFolder url="file://$MODULE_DIR$/build/incremental" />
  <excludeFolder url="file://$MODULE_DIR$/build/libs" />
  <excludeFolder url="file://$MODULE_DIR$/build/manifests" />
  <excludeFolder url="file://$MODULE_DIR$/build/res" />
  <excludeFolder url="file://$MODULE_DIR$/build/symbols" />
  <excludeFolder url="file://$MODULE_DIR$/build/tmp" />

После этого я перестроил проект, и R волшебным образом появился снова.

5
user1137313

У меня была такая же проблема, и в большинстве случаев она решается 

  • Синхронизировать проект с файлами Gradle
  • Doing Build -> Чистый проект
  • Doing Файл -> Неправильные кэши

Но на этот раз ошибка сохранилась даже после того, как все это было сделано, и, наконец, я нашел виновника.

Проблема была в XML-файле , где я дал обычное строковое значение для Android:id вместо типа ресурса id.

ОШИБКА

Android:id="username"

ИСПРАВЛЕНИЕ

Android:id="@id/username"

Неразбериха с вещами, связанными с resources в XML-файлах, является основной причина этой ошибки. Остерегайтесь того факта, что она может не отображаться как ошибка в файле макета xml.

НОТА 

В большинстве случаев компилятор показывает вам источник ошибки в сообщении . Попробуйте сначала проверить его, прежде чем пытаться найти другие решения.

5
Siva Prakash

`У меня была та же проблема, и она была решена с помощью:

1) Sync Project with gradle files
2) Build -> Clean Project
3) Build -> Rebuild Project
4) File -> Invalidate caches

//imp step
5) Check your xml files properly.`
5
Bapusaheb Shinde

изменить последнюю версию SDK, это было работать для меня

1.Щелкните по файлу, а затем щелкните по структуре проекта 2. Затем выберите «приложение» Затем нажмите «ОК», у меня все заработало .  enter image description here

4
Than Htut

Это была большая головная боль для меня. В моем случае ошибка появилась после настройки «Сервисов Google Play» в Android Studio (установка + build.gradle config). Это, в свою очередь, требует minsdk> 7, но ошибка очень неясна (на самом деле жалоба на это появляется только как «информация»). Во всяком случае ... после изменения minsdk на 8 как в файле манифеста, так и в файле build.gradle и перестройке проекта ошибка исчезла.

Итак ... общий совет по этому поводу, если можно обобщить - у вас, вероятно, есть проблема в файле манифеста или в другом файле конфигурации, которая мешает правильной сборке. Попробуйте очень внимательно посмотреть на сообщение об ошибке, даже сообщения с заголовком «информация», чтобы понять, что это может быть ...

4
ayal gelles

Чувак, я думаю, здесь много темных снимков. В некоторых случаях Clean and Sync Project поможет только после того, как вы исправили проблему.

Step1: Итак, посмотрите на верхнюю часть каждого файла, в котором указан пакет следующим образом: pakage="YourURL.YourProject";, и убедитесь, что указан правильный пакет (ваш собственный проект). Вы найдете это в Java files и AndroidManifest.xml , и для файлов Java очень важно ссылаться на правильный пакет, так как этот пакет содержит ресурсы ("R"), на которые вы указываете к. Если они не совпадают ошибка не может разрешить возникновение символа R .

Step2: Очистить, синхронизировать, что угодно. Готово

Так почему это происходит случайно или что я сделал не так?

Если вы копируете и вставляете code, вам следует обратить пристальное внимание на "package =", как описано выше. Что еще более важно, когда вы вставляете код, он сразу запускается через своего рода отладчик (Извините, мой плохой технический термин), чтобы показать вам "предполагаемые ошибки", которые сразу же принимают во внимание "неправильный пакет", и вы получаете все ошибки . Поэтому, даже если вы сразу исправили запись после вставки, отладчик уже обновился. Вот почему «Чисто, синхронизировать, что угодно» работаетИНОГДА

4
Angoranator777

Есть много причин для этой ошибки.

  1. Иногда это происходит для замены файла изображения с тем же именем.
  2. Предположим, вы удалили элемент из макета .xml, скажем, <Button/>, но он все равно объявлен в любом действии или фрагменте .Java.
  3. Многое другое.

Лучший способ отследить ошибку - перестроить ее достаточно чисто или синхронизировать, сделав какую-то преднамеренную ошибку.

Если это не решит вашу проблему, то должна быть какая-то ошибка или ошибка во время выполнения, или ошибка произошла из-за неправильного использования ресурсов. Это может быть как файл Java, так и XML-файл в вашем коде или проекте, который заставляет gradle останавливаться, потому что (R ) esource file не может правильно проиндексировать ваши ресурсы, и вы должны это признать.

Если ваш проект выполнялся до того, как вы внесли изменения, закомментируйте внесенные изменения и попробуйте перестроить проект.

Это, безусловно, будет работать, так как не будет никаких изменений.

Чтобы отследить точную ошибку, проверьте изменения, разбив изменения на меньший модуль.

Например - Если вы делаете список видимым с помощью нажатия кнопки и вставляете значения списка в адаптер, сначала проверьте, можете ли вы сделать его видимым или нет, а затем проверьте наличие ошибок адаптера.

4
Sourav Roy

Очистка, восстановление и «удаление кэша» мне не помогут, обновление Android Studio Исправлено.

3
Muhammad Sanaullah

Для меня проблема заключалась в том, что я обновился до версии Gradle, в которой, похоже, есть некоторые ошибки. Я обновил 3.4.0-alpha02 и обнаружил, что это является причиной ошибки «Не удается разрешить символ R». Я вернулся к 3.3.0-alpha10 (т.е. classpath 'com.Android.tools.build:gradle:3.3.0-alpha10'), и это решило проблему. 

Это, очевидно, не долговременное решение, так как рано или поздно мне придется обновляться, но по состоянию на 3 ноября 2018 г. 3.4.0-alpha02 является последней версией, и она мешает моей разработке, не позволяя мне переходить IDE к нажав на R ссылки.

3
mp501

Это случилось со мной довольно недавно, когда я обновил большую часть библиотек проекта. R не был найден, но я вполне мог собрать и запустить проект. Это не было сбой. IDE просто везде показывал красный.

Я пытался

  • Проверьте на наличие поврежденных/неправильных XML-файлов и изображений, ни один не найден
  • Проверьте наличие недопустимых имен файлов ресурсов (например, заглавных), ни одного не найдено
  • Понизьте рейтинг некоторых библиотек, потому что возможно это был конфликт ресурсов, не решенный
  • Понизил compileSdkVersion и targetSdkVersion, потому что в прошлом я сталкивался с проблемами с ресурсами из-за этого. В этом проекте, однако, это было не так.
  • Чисто, не помогло
  • Перестроить проект, не помогло
  • Недействительные кэши/перезапускать несколько раз, не помогло
  • Скорректировал idea.max.intellisense.filesize на очень высокое значение, не помогло
  • Выполнен ли Lint, ошибок не найдено

В конце концов я обнаружил, что понижение уровня моих инструментов сборки Gradle (с 3.3.1 до 3.2.1) решило проблему. Это было единственное изменение, которое я должен был сделать. Остальное, обновлено. Теперь все мои библиотеки обновляются без проблем.

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        //classpath 'com.Android.tools.build:gradle:3.3.1'
        classpath 'com.Android.tools.build:gradle:3.2.1'
        classpath 'com.google.gms:google-services:4.2.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
3
Gene

Просто импортируйте символ R из корневого пакета

import rootpackage.R;

Нет перестроить, синхронизировать или другие вещи ...

3
Rzv Razvan

Одна вещь, которая работает для меня каждый раз, это:

перейдите к -> build.gradle (Module: app) файлу вашего проекта -> сделайте небольшое изменение (например: поместите где-нибудь <space> и удалите его обратно) -> тогда Android Studio попросит вас sync ваш файл Gradle -> вверху справа угол файла -> select "sync now".

После завершения синхронизации это решит проблему в большинстве случаев.

3
Danger

В моем случае это было решено обновлением Android Studio с 3.1 до 3.3

Чтобы обновить Android Studio: Файл -> Настройки -> Системные настройки -> Обновления, а затем нажмите «Проверить сейчас».

 enter image description here

2
Tanvir Hasan

В моем случае, после той же ошибки (не удается разрешить символ R) в Android Studio версии 0.8.9, я перешел в File-> Project Structure и изменил расположение JDK на Oracle JDK, который я установил вручную. Так что в моем случае в Linux вместо/usr/lib/jvm/Java-7-Oracle, который был предустановлен. Я изменил его на /home/phvz/App/jdk1.8.0_20, сохранил настройки и проблема с символом R была решена немедленно

2
Paris G.

Что сработало для меня:

  1. Создан новый проект.

  2. Обнаружено, что R работает!

  3. Сравнил все конфигурации.
  4. Обнаружил эту разницу в файле Gradle: compile 'com.Android.support:appcompat-v7:23.4.0'

  5. Синхронизация, и это снова заработало!

2
M. Sherbeeny

У меня эта проблема, особенно когда я случайно повредил layout или файл ресурсов меню . Сценарий, по которому я нажал , не может разрешить символ R, когда я забываю добавить «@+id», где я должен определить идентификатор в пункте меню.

С поврежденным файлом ресурсов меню я получаю эту ошибку, если пытаюсь построить проект с его помощью. ПосколькуRявляется контейнерным классом для ресурсов, кажется, что gradle не может быть привязанR, когда он не может анализировать ресурсы, .xml файлы.

Решение заключается в простом исправлении файлов ресурсов, очистке проекта и повторной сборке.

2
Levent Divilioglu

Убедитесь, что у вас есть AndroidManifest.xml в проекте. 

Со мной случилось, что я импортировал проект, у которого еще не было манифеста, поэтому Android Studio не распознала бы его как проект Android. Затем я вытащил проект в GIT, и он загрузил манифест, но все еще не работает. Затем я перезапустил Android Studio, и он сказал что-то вроде «Framework детектировал Android».

Поэтому убедитесь, что ваш проект настроен как проект Android.

2
xhenryx14

Я обнаружил, что в больших проектах автоматически сгенерированный R.Java больше 2,55 МБ (ограничение по умолчанию для Intellij), что приводит к созданию файла, но не разрешению. чтобы решить это, просто увеличьте этот предел:

  1. в Android Studio Help -> Изменить пользовательские свойства ...

 enter image description here

  1. Примите и добавьте: idea.max.intellisense.filesize=3000 (3000 или любое значение, превышающее размер файла R)

 enter image description here

  1. наконец, перезагрузите Android Studio!
2
riu999

Сначала проверьте, есть ли какая-либо ошибка в любом макете XML или нет, если затем разрешите ее.

В противном случае удалите зависимость junit из проекта и пересоберите проект .  enter image description here

2
Jaimin Prajapati

В OS X с Android Studio 0.2.13 я выполнил «Перейти к объявлению» при импорте com. <Project> .R в одно из моих занятий. Когда я вернулся к файлу активности, все предупреждения исчезли.

Правка: Вам нужно собрать текущий вариант сборки, прежде чем это будет работать.

2
Mike Hays

Я добавил несколько изображений в ресурсы для рисования, и одно из моих изображений было названо " super . Jpg", что и стало причиной. 

Переименование изображения и после, которые синхронизируют проект с файлами Gradle, исправили ошибку. 

2
Agafonova Victoria

В моем случае код работал правильно до того, как я обновил Android-студию. После обновленияRфайл не был создан. Я работал над пользовательским представлением и имел атрибут 

<attr name="showText" format="boolean" />

по моему объявляем стилевым. Этот же атрибут также использовался пользовательским интерфейсом системы:

<style name="Base.Widget.AppCompat.CompoundButton.Switch" parent="Android:Widget.CompoundButton">
    <item name="track">@drawable/abc_switch_track_mtrl_alpha</item>
    <item name="Android:thumb">@drawable/abc_switch_thumb_material</item>
    <item name="switchTextAppearance">@style/TextAppearance.AppCompat.Widget.Switch</item>
    <item name="Android:background">?attr/selectableItemBackgroundBorderless</item>
    <item name="showText">false</item>// this line
</style>

Я переименовал предыдущий showText to showTextFormat , а затем Gradle Sync, который восстановил файл R.Java.

2
Illegal Argument

Ничто из этого не помогло мне в Ubuntu 12.04. Я должен был сделать следующее:

Sudo apt-get install lib32stdc++6
Sudo apt-get install lib32z1

После этого я последовал некоторым другим советам в этой теме, сделал Build -> Clean Project и все было хорошо.

2
LOLapalooza

В моем случае: файл res/someLayout.xml выходит с ошибкой, после чего я ее решаю. Затем очистите проект . Ошибка исчезла.

2
Vrajesh

У меня был Android:textAllCaps = "false" в androidmanifest , который создавал хаос для R file. Я удалил его, и все в порядке. Я думаю, что target sdk не был установлен достаточно высоко.

2
timmyt123

Я столкнулся с этой проблемой, когда импортировал файл google-services.json для реализации Google Analytics. У меня уже был файл global_tracker.xml в папке xml. Во время сборки при объединении содержимого из файла google-services.json возникла ошибка. 

Ошибка устраняется после удаления файла goolgle-services.json.  

2
Lalit Rane

Ни один из приведенных выше ответов не помог мне. Я наконец понял, что проблема в том, что папка "build" отсутствует в Android Studio. Я нашел несколько строк в файле "iml" проектов, исключая "build/*". После их удаления появился файл сборки и исчезли ошибки.

2
thefreeman

В мгновенном приложении активности неосновной функции вы можете вызывать R.id.fromFeatureOne и R.is.fromFeatureTwo. Таким образом, элементы из различных ресурсов относятся к одному ресурсу Origin

Оба будут выделены как приемлемые, и вы даже можете перейти к источнику. Но сборка приведет к ошибке: "not find symbol R.id", что довольно сложно найти причину, так как ничего не выделено.

Решение состоит в том, чтобы вызвать com.example.feature.one.R.is.fromFeatureOne и com.example.feature.two.R.is.fromFeatureTwo.

Также выдается ошибка в Google: https://issuetracker.google.com/u/0/issues/77537714

1
Zon

Видимо, в моем случае проблема была решена путем добавления "*" в конце 

import Android.R.*;
1
Dan

Я следовал всему выше, и это не сработало. В моем случае мне пришлось настроить JDK, когда у меня была каждая функция Java красного цвета для предварительного просмотра Android-L ... 

На Mac:

  1. Нажмите один раз на то, что является красным (или подчеркнуто) в вашем коде (то есть активность, строка).
  2. Нажмите на точку с красной лампочкой, которая появляется слева.
  3. Выберите «Настройка JDK».
  4. Убедитесь, что annotations.jar и Android.jar находятся в текущей используемой вами версии SDK (в моем случае SDK 20 Android-L). У вас тоже должна быть папка "res", но у меня как-то все равно было в настройках.
  5. Если нет, выберите SDK и нажмите «-».
  6. Затем нажмите «+» и найдите папку SDK на вашем компьютере (Mac: Приложения> Android Studio.app> sdk).
  7. Выберите нужную версию SDK (в моем случае 20 Android-L).
  8. Нажмите Добавить.
  9. Построить и синхронизировать.

Тогда все пришло в норму для меня.

1
Tomap

я сделал make project, и он работает но перед этим попробуйте проверить имя пакета в манифесте, пересобрать и очистить ваш проект. если проблема не решилась, то сделай свой проект

1
Fakher

Еще одна вещь, чтобы попробовать ...

  1. Удалить папку Build
  2. Перестройте проект, синхронизировав Gradle

Я уже попробовал многие другие предложения здесь, такие как 

  • очистка проекта,
  • перезапуск Android Studio,
  • исправление ошибок в моем XML,
  • синхронизировать проект с файлами Gradle, и
  • обновление версии инструментов сборки,

но ничего из этого не сработало. 

Наконец, я просто вручную удалил всю папку сборки (после резервного копирования моего проекта), а затем перезапустил Android Studio. После этого я сделал небольшое редактирование (добавил и удалил пробел) в файле build.gradle своего приложения, а затем нажал кнопку «Синхронизировать». (Я, вероятно, мог бы просто сделать из меню «Инструменты»> «Android»> «Синхронизировать проект с файлами Gradle». После этого все заработало. Что-то было повреждено в папке сборки и начало заново с новой сборкой исправило это.

Я не знаю, читал ли кто-нибудь это далеко внизу списка решений, но я все равно добавлю этот ответ.

1
Suragch

Ни один из приведенных выше ответов не решил мою проблему. Поэтому я добавил свое решение на тот случай, если кто-нибудь столкнется с подобной проблемой. В моих зависимостях build.gradle, которые у меня были,

compile 'com.Android.support:appcompat-v7:22+'

и моя версия compilesdk была compileSdkVersion 21, поэтому студия Android не была довольна. Я просто обновил свой compilesdkversion до 23 и произвел синхронизацию.

Я также обновил зависимость как

compile 'com.Android.support:appcompat-v7:23.1.1'

чтобы соответствовать моей библиотеке поддержки в Сервис -> Android -> SDK Manager -> вкладка Инструменты SDK -> Библиотека поддержки Android -> версия . Теперь все в порядке. Удачного кодирования :)

1
The_Martian

Build -> clean project или Rebuild project Или File -> Invalidate Caches/Restart ... -> Invalidate and Restart

1
Hitesh Kanjani

Примечание: это может помочь вам, только если ваш проект очень большой

TL; DR - сгенерированный R-файл превысил 2,56 МБ, и Android Studio его не индексирует, решение для этого можно найти здесь: 

Размер файла превышает установленное ограничение (2560000), функции анализа кода недоступны

Столкнулся с аналогичной проблемой. Но ни один из ответов здесь, похоже, не помог.

Файл R был больше, чем 2,56 МБ, при открытии сгенерированного файла R, я получил сообщение «Возможно, информация кода не доступна»

Изменение значения по умолчанию в idea.properties, чтобы разрешить больший файл, помогло.

Извиняюсь за форматирование, на мобильном.

1
user3501236

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

import com.example.myapp.R;
1
qjk

Это происходит из-за недавно удаленного xmls В Android Studio Очистите свой проект от этих xmls, выбрав: Build -> clean project 

1
Tony Tawk

Я также получил эту проблему, и я решил ее следующим образом .. Сначала перейдите в Gradle и нажмите очистить . Во-вторых, нажмите Build.

Убедитесь, что не очистить от Android студии

1
Susampath

У меня были мои XML-файлы в папке LAYOUT вместо папки MENU.

Это произошло в результате перехода на Android Studio из Eclipse.

Решение для меня было простым ... переместить мои XML-файлы в папку MENU и перекомпилировать.

1
user3063582

В новой Android студии 2.2. Если ваш TargetSDK = <15, вы также можете найти эту проблему. Измените это в gradle.build, затем следуйте инструкциям согласно предыдущим ответам. Синхронизируйте файлы Gradle и восстановите. Вы также можете сделать недействительными кэши и перезапустить студию, что иногда также помогает.

1
Erick Boshoff

В моем случае мне нужно было исправить некоторые ошибки в моих файлах XML макета. Там не было значка, который указывал, что файлы содержали ошибки. Однако, когда я щелкнул по ним, я заметил несколько красных линий. После исправления их, R был найден.

1
Michiel Pater

Если у вас есть ошибка в XML-файле, независимо от того, что вы делаете, вы не можете исправить эту проблему. Я бы предположил, что

во-первых, проверьте ваш XML-файл на наличие ошибок и 

-второй поиск в журнале событий того, что Android Studio обнаружила ошибку, и она покажет вам, какой файл и где находится ошибка.

Так я решил проблему с R

1
Mjachowdhury

У меня была похожая проблема в настоящее время. Проблема заключалась в том, что в моем проекте было больше модулей. Например. модуль app и модуль library. Хотя и класс, и ресурс R.string были из модуля app, у меня почему-то был там import com.package.library.R. Как-то Android Studio не распознал это как ошибку, и Gradle/Sync собрал мой проект без проблем. Но когда я попытался запустить модульные тесты, сборка Gradle не удалась с описанной ошибкой.

package com.package.app

import com.package.library.R;
//...

class SomeClass {
  //...
  public void someMethod() {
     Toast.make(context, R.string.message, TOAST_LONG).show();
  }
}

Когда ресурс R.string.messsage фактически находится в моем модуле com.packagename.app, а не в модуле com.packagename.library. Удаление import ... решило мою проблему.

1
Jan Kubovy

Убедитесь, что полное имя пакета указано в первой строке. Скажем, у вас есть файл с именем LoginActivity.Java и пакет с именем com.domainname.project.

Первая строка для LoginActivity.Java должна быть

package com.domainname.project;

Это эквивалентно указанию «пространства имен» в dot.net. Также убедитесь, что пакет соответствует пакету, в котором содержится ваш * .Java-файл.

0
Simba

Я получил эту ошибку после обновления плагина Gradle с версии 1.3.1 до

classpath group: 'com.Android.tools.build', name: 'gradle', version: '2.2.1'

Это заставило меня изменить все ссылки, как

import [applicationId].R;

в

import [package].R;

И в моем проекте библиотеки appcontext.getPackageName(); перестала работать правильно. Я использовал его, чтобы получить правильные ресурсы приложения с помощью рефлексии, но после обновления плагина gradle он начал возвращать специфический для аромата applicationId вместо пакета ... вы можете прочитать об этом больше здесь .

0
Gabor

Эта проблема вызвана именованием файлов в папке «res» или «drawable». Вы не можете использовать любую заглавную букву для именования файла ресурса. Итак, проверьте, есть ли такой файл, и переименуйте его маленькими буквами.

И, кроме того, вы можете попробовать это: Перейти к: File > Invalidate cache/restart  

Эти варианты сработали для меня.

0
galibhkhan

Вы можете delete один из ваших layout files (не имеет значения, какой именно), после этого вам нужно build project. Проект будет построен, и после этого вам нужно вернуть файл макета CTRL + Z, В моем случае, если я попытался построить свой проект перед удалением layout file, это мне не помогло. Но этот путь в порядке.

0
Valentin

Исправить ошибку «не удается разрешить символ r». Попробуйте эти решения.

  1. Построить -> Чистый проект.

  2. Build -> Build Project.

  3. Build -> Make Project.
  4. Третий значок слева на панели инструментов -> Синхронизировать проект с файлами Gradle.
  5. Файл -> Недействительные кэши и перезапустить.
  6. Убедитесь, что вы используете совместимую версию Gradle в файле Gradle уровня приложения.

например : "classpath 'com.Android.tools.build:gradle:X.X.X'".

Я надеюсь, что эти решения могут помочь вам.

Спасибо за прочтение.

0
Aman Goyal

См. Приведенный ниже файл «Файл изображения» -> «Настройка проекта» -> «Установить все настройки как изображение» и «Синхронизировать», и в ваш проект будут включены все последние настройки .  This Image contain project settings. Если ваш проект успешно завершен, вам нужно это сделать. потому что он будет импортировать все настройки обновления и Gradle.

0
Tejas Shukal

Вам просто нужно проверить ваш XML-файл. Если есть ошибка, то вы не можете устранить эту ошибку . Просто решите ошибку в xml и попробуйте.

OR

Очистить ваш проект от сборки -> Очистить

0
Hardik Lakhani

Первое решение

Rebuild your gradle or invalidate/restart your system.

Второе решение

delete .gradle and .idea folder from your Android project. So you can solve "R" problem

а также удалить ошибку redline, возникшую без какой-либо причины, которую вы получите.

0
Jatin Bansal

Я вижу, что эта проблема может вызвать много вещей. В моем случае у меня был некоторый textView в одном из файлов * .xml действий. Я поместил в него текст в редакторе (чтобы изменить его позже с помощью кода) следующим образом: "NAME: <here will be name>". Очевидно, символы "<" и ">" прервали импорт R в мой проект из любого места. Я изменил его, и он начал работать. Я просто забыл, что не могу использовать эти символы в файлах * .xml, потому что они строят его структуру. Это стоит иметь в виду.

0
serwus

После я делаю "Build-> clean project" и "Sync project with gradle". Оба они не решаются. Я собрал версию Gradle с 3.3.0 => 3.2.1 (вернуться в исходное состояние проекта), и это решило мою проблему.

0
Lwf804

У меня ничего не получалось, тогда мне нужно обновить мою студию Android, чтобы она работала. После обновления Android Studio до последней версии проблема устранена.

0
Shivam Yadav
  1. Введите 1: закройте проект и удалите файл .gradle в своем проекте, а затем перестройте проект
  2. Тип 2: Если тип 1 не работает, просто возьмите резервную копию этого файла project9Zip) и затем удалите проект. Затем извлеките проект Zipped и просто импортируйте извлеченный проект, он будет работать отлично, потому что он работает для меня.
0
Manjunath

Я работаю над проектами multi-module. И это случилось со мной, когда я переместил весь код пользовательского интерфейса в новый модуль.

Вот как я решаю проблему: Я обнаружил, что когда я создаю новый ui module, в /res/values, он создает новый strings.xml, в котором нет ничего полезного. Я удаляю этот strings.xml файл, rebuild проект, и он работает.

0
laixiaoyuan

В моем случае я пытался clean и rebuild проекта. Проблема не была устранена, поскольку в файле макета возникла ошибка. Чтобы воссоздать, я добавил опечатку в атрибут в пространстве имен приложения.

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" xmlns:app="http://schemas.Android.com/apk/res-auto">
    <item
        Android:id="@+id/add_user"
        Android:icon="@Android:drawable/ic_menu_add"
        Android:title="Add User"
        app:showAsActioin="always"
        />
</menu>

Android Studio не проверяла атрибуты пространства имен app, кажется, файл не содержит ошибок. Теперь при создании проекта он говорит Cannot resolve symbol 'R'. Ошибки отображаются в журнале сборки.

 Cannot resolve symbol 'R' - Android Studio

Исправление опечатки исправляет это, смотрите в разделе Android проблемы в журнале сборки.

0
All Іѕ Vаиітy

Для меня важно сказать, что Android Studio вначале доставит трудности для изучения, но, как и здесь, решение Clean Project может это исправить, всегда проверять упакованное имя и не пытаться связываться с логикой о том, Мне нравится программное обеспечение но иногда я пытаюсь думать, если путь правильный или нет, также я люблю Linux, но для меня Android Studio, чтобы переписать все программное обеспечение, возможно, этого не произойдет. В любом случае удачи !!!!

0
Pedro Duarte

В проекте gradle (т.е. в build.gradle) просто обновите com.Android.tools.build:gradle как

зависимости {

classpath 'com.Android.tools.build:gradle:3.2.1'

}

0
Gowtham. R

Посмотрите на Консоль Gradle. В моем случае я включил ресурс с неправильным расширением файла.

AAPT: libpng error: Not a PNG file
:app:mergeDebugResources FAILED

FAILURE: Build failed with an exception.

После переименования файла и Sync Project with Gradle Files все было хорошо.

0
creep3007

У меня была та же проблема: Android Studio 3.2 Проект компилируется и работает нормально, но я получаю предупреждения "Не удается разрешить символ" R "на экране

Не помогает:

  • Строй-> Чистый проект 
  • Build-> Rebuild Project
  • File-> Invalidate Caches/Restart

Помогает:

или 

в build.gradle

dependencies {
        classpath 'com.Android.tools.build:gradle:3.3.0'
...
}

заменить 

   dependencies {
            classpath 'com.Android.tools.build:gradle:3.2.1'
    ...
    }

или же

Обновите Android Studio до 3.3

0
Alex Burov

в большинстве случаев эта проблема вызвана файлами XML, посмотрите на файлы XML, ища любые ошибки.

0
Marco Aurelio Silva

Я думаю, что у меня есть окончательное решение. Я провел исследование и обнаружил, что Android Studio ненавидит «Белые пространства» в путях установки или каталогах. Он не принимает SDK, помещенный в каталог с пробелами. Например

C:\Program Files (x86)\Android\sdk 

Этот каталог недействителен, так как содержит пробел. Здесь , я уже ответил на вопрос, где парень не смог изменить свой путь JDK в Android Studio, потому что в его каталоге SDK было пустое пространство. Это странно, но кажется, что Android Studio ненавидит каталоги с пробелами. Так что решение - 

Установите Android Studio, а также Android SDK в каталог или путь, где нет пробелов.

Например, установить Android Studio в

C:\AndroidStudio\

И установите Android SDK в

C:\Sdk\

Оба эти каталога действительны, так как нет пробелов. Каждый путь, который не содержит пробелов, действителен. Это также решает другие проблемы, такие как «Не удалось решить: junit: junit: 4.12» или «Сбой проекта синхронизации Gradle» и т.д.

0
Akshay

// иногда из-за неполной синхронизации это создает проблему 

// так что просто следуйте инструкциям, и это точно сделает вашу работу

Click on Build->Clean Project and that will perform a gradle clean
0
Jay

У меня была нерешенная проблема R из-за одного и того же файла image.png в двух местах. Один в res> anim и тот же файл в res> drawable-hdpi. Это заставило R стать нерешенным. Я создал проблему, создав изображение заставки и многократно перемещая его из графического каталога Moray в проект Android напрямую. Я, должно быть, случайно уронил его в папку res> anim. Я исправил проблему, удалив дубликат файла изображения из папки res> anim, и Android studio исправила себя.

0
Paul Moore

Простое определение пространства имен приложения в вашем XML-файле может вызвать это. Это была совершенно безобидная линия, которая выбрала только один символ (из многих), чтобы сделать его нерешенным. Простое удаление всей строки, выделенной серым цветом на рисунке ниже, позволило моему коду сослаться на неразрешенный символ. Даже когда я добавил строку назад, он решил построить без проблем. Пойди разберись.

 enter image description here

0
Alyoshak

В моем случае причина была в том, что некоторые изображения в папке res с именем содержат заглавную букву ..

просто переименуйте его маленькой буквой и восстановите

0
Mohammad Shraim

Это просто "Синхронизировать проект с Gradle"

0
Ananta Prasad
     The above answers are also the ways to fix the error but if does not work for anyone  then i have an option...

Просто закройте проект и ничего больше и запустите его снова, чтобы он загрузил ссылки ... Следуйте скриншотам.

 enter image description here  enter image description here

0
muhammad obaid

У меня такая же проблема. Я пробовал большинство из того, что упоминалось выше, т.е. Gradle Sync, проверка кеша и перезагрузка, очистка и перестройка проекта ... перезапуск Android Studio, но проблема все еще была ...

Проблема для меня здесь, и я предполагаю, что другие могут иметь такую ​​же проблему. У меня было место в имени моего вновь созданного файла макета ... Вместо file_example.xml у меня было file _example.xml ** (обратите внимание на пробел между файлом и _) ** при попытке чтобы найти ссылку на этот файл макета вы увидите ошибку.

Я предлагаю вам посмотреть самый последний файл макета, который вы только что создали, немного изменить его имя, а затем замените R.layout на новый файл в вашей деятельности/фрагмент -> Затем clean ..rebuild проект, Project скомпилируется без ошибок. По крайней мере, в моем случае это было решением моей проблемы.

0
NelsonRoberts

Я сталкиваюсь с ошибкой 'Unable to resolve symbol R' R отображается в файле Java красным цветом. Я решил это.

  1. Не сохраняйте изображения с заглавными буквами Например, ABC.png . Сначала удалите изображение или переименуйте его. 
  2. Чистый проект 
  3. Перестроить проект
0
kiran bankar

Примите во внимание следующие функции IDE:

  • Синхронизировать проект с файлами Gradle
  • Построить -> Чистый проект
  • Build -> Rebuild Project
  • Файл -> Неправильные кэши

Мое простое решение:

  1. Убедитесь, что в зависимостях build.gradle приложения или в all файлах ресурсов в каталоге /res нет строки ошибки; где некоторые распространенные ошибки возникают, когда значения атрибута остаются без ссылок при использовании:
    • "@ Строка/.."
    • "@стиль/.."
  2. Убедитесь, что вы не получаете сообщение об ошибке типа сбой привязки ресурса Android при перестроении проекта.
  3. Откройте файл, содержащий строку с ошибкой Cannot resolve symbol 'R'
  4. Прокрутка до последней строки класса с указанной строкой ошибки
  5. Нажмите на позицию справа от закрывающего ключа } класса 

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

GL

0
IT Developers