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

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

+690
источник поделиться
97 ответов

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


Нажмите Сборка- > Очистить проект и выполните gradle clean

+706
источник

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

"Инструменты" → "Android" → "Sync Project with Gradle Files"

В последней версии Android Studio 3.1.3 (июль 2018 года) в основной строке меню доступен "Sync Project with Gradle Files".

enter image description here

+223
источник
другие ответы

Связанные вопросы


Похожие вопросы

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

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

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

+141
источник

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

чистый проект и проект синхронизации с 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(module: app)

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

Или

выберите Файл | Изменение структуры проекта Build Tools Version to 21.1.1

enter image description here

+107
источник
  • Проверьте файлы xml.
  • Очистить проект.

Это он.

Например, у меня была запись в 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 стал недействительным. В результате: невозможно разрешить R.

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

+55
источник

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

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

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

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

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

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

+48
источник

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

gradlew clean

или

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

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

+28
источник

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

import com.example.yourproject.R;

+25
источник

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

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

+15
источник

Ваш код просто скремблирован. Ответ довольно прост.

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

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

В настоящее время я использую Android Studio 3.0.1.

+14
источник

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

+13
источник

Просто очистите проект и проект синхронизации с помощью файла Gradle. enter image description here

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

+12
источник

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

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

В меню в верхней части выберите:

Анализ → Проверьте код, отсканируйте весь проект, используя профиль "По умолчанию".

Ваши результаты проверки будут содержать элемент под названием "Android". Здесь вы получите список всего, что вызывает проблемы в ваших ресурсах и файл манифеста. Ошибки откроют сгенерированные файлы xml из вашей сборки, которые будут показывать любые ошибки в красном.

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

Проверка

ОБНОВЛЕНИЕ: У меня возникла проблема после того, как Android Studio по-прежнему обнаружила ошибку после исправления, хотя теперь я мог строить и работать отлично, пока ошибка все еще была. (Я запускаю канареечную сборку, так что до сих пор это доводилось до конца)

+11
источник

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

  • Записная буква в моих доступных ресурсах.
  • Импорт Android.R, добавленный в Android Studio (или Eclipse)
  • Ошибка в файле xml
+9
источник

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

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

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

AppName/        // AppName is your app 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, и даже проще сразу из вашей файловой системы OS, потому что Android Studio сворачивает папки, которые содержат только одну папку на одной строке.

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

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

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

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

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

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

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

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

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

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

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

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

+9
источник

Просто перейдите в список Android Top Menu. нажмите "Меню сборки", в разделе "Построить" нажмите " Восстановить проект".

enter image description here

+9
источник

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

  • Установите правильную структуру package папки <manifest> в AndroidManifest.xml.
  • Задайте новое расположение пакета для android:name <activity> в AndroidManifest.xml.
  • Очистить кеш

Меню файла → Недействительный кеш/перезапуск...

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

+9
источник

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

Не помогает:

  • Build-> Чистый проект
  • Build-> Проект перестройки
  • File-> Недействительные кэши/перезапуск

Помогает:

или

в 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

+9
источник

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

+8
источник

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

В моем проекте все идет хорошо, он может скомпилироваться и успешно работать, но в моей среде Android Studio IDE (и я также попытался использовать интеллектуальную 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, красный цвет уволен, я могу снова запрограммировать программу.

+8
источник

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

Что я делаю:

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

Это работает для меня.

+7
источник

Сборкa > Очистить проект

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

Имейте хороший, и удачи с вашими проектами.

+7
источник

Do: Build > Clean Project

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

В основном эти ошибки связаны с @string/или @array/. Очистить проект еще раз!

+7
источник

Мне было трудно это решить.

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

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

+7
источник

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

  • Проект синхронизации с gradle файлами
  • Выполнение Сборка → Чистый проект
  • Выполнение Файл → Недействительные кеши

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

Проблема заключалась в файле xml, где я присвоил стандартное строковое значение для android:id вместо типа ресурса id.

ОШИБКИ

android:id="username"

КОРРЕКЦИЯ

android:id="@id/username"

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

ПРИМЕЧАНИЕ

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

+6
источник

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

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.`
+6
источник

Это обозначение работает нормально.

android:id="@+id/viewID"

Панель дизайна Android Studio не работает хорошо.

+5
источник

Такая же проблема. Началось, когда я добавил несколько изображений в свою папку с возможностью переноса и попытался получить к ним доступ. Также добавленные изображения имели расширение с прописными буквами. Кажется, это разбило сборку, так как даже если я переименовал их, сообщение было таким же, и 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
источник

Существует много причин для этой ошибки.

  • Иногда это происходит для замены файла изображения, сохраняющего одно и то же имя.
  • Предположим, что вы удалили элемент из вашего макета .xml say a <Button/>, но он все еще объявлен в любом Activity или Fragment.java.
  • Еще много.

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

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

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

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

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

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

+5
источник

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

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

+4
источник

Посмотрите другие вопросы по меткам или Задайте вопрос