«Не удается разрешить символ R» в Android Studio

740

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

19
  • в прошлом я получал xml-ошибки, такие как: progressbar не может быть преобразовано в android.widget.textview, и я исправил это, просто изменив имя текстового представления. Я до сих пор действительно не знаю, что вызвало ошибку. ez4nick 11 июня '13 в 21: 272013-06-11 21:27
  • Если вы изменили имя, возможно, вы сейчас пытаетесь использовать строковую ссылку, которой нет в res / strings.xml? Eyeball 11 июня '13 в 21:32
  • 2
    Я много раз искал, прежде чем задать этот вопрос, и нашел много похожих вопросов, включая тот, который вы упомянули. Я прочитал предложение в этом вопросе, и ни в одном из моих java-файлов нет импорта Android.R. ez4nick 11 июня '13 в 21:50
  • 2
    Привет всем, я забыл задать этот вопрос, так как он был задан так давно. Я должен был принять свой ответ год назад, теперь это комментарий над этим. Проблема заключалась в том, что в то время студия Android находилась на такой ранней стадии, и как новый разработчик я никогда не должен был ее использовать. Будьте уверены, что сейчас все работает нормально. Если возможно, восстановите мой исходный ответ, чтобы я мог его принять. ez4nick 21 ноя '14 в 3:26
  • 3
    Не найти R - это не ваша ошибка, это ошибка, вызванная ошибкой сборки. Исправьте другие ошибки, и все будет в порядке. Just_someone 26 сен.
728

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


Нажмите Build-> Clean Project, и это выполнит очистку градиента.

19
  • 57 год
    Иногда вам также необходимо перезапустить студию Android. или, по крайней мере, для меня. Foo Bar User 12 фев '14 в 0:47
  • 24
    Для тех, кто в конвульсиях использует командную строку, нажмите Build-> Clean Project, и это выполнит «чистку gradlew». ;)Mr. Concolato 31 марта '14 в 22: 442014-03-31 19:44
  • 22
    Не повезло ... У меня не работает очистка перестройкиCandleCoder 7 янв.
  • 7
    если очистить, перестроить, сделать недействительными кеши-перезапуск не решит go for: import package.R; Sudip Bhandari 16 янв.
  • 4
    Для меня это было причиной проблемы: несоответствие между ApplicationId в gradle и именем пакета в манифесте (и хотя автоматический импорт добавил неправильный адрес для файла R). Я рекомендую эту небольшую статью, чтобы прояснить разницу между ними. blog.stylingandroid.com/package-name-vs-application-idTina 10 фев '18 в 13:11
232

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

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

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

введите описание изображения здесь

10
  • Какую версию Android Studio вы использовали в то время? Joel Handwell 22 окт.
  • У меня не работает (Android Studio 0.8.14). Но проект Build> Clean работает хорошо. Phat H. VU 20 ноя '14 в 8: 562014-11-20 11:56
  • По-прежнему работает в Android 1.2.1. Не забудьте сделать это более одного раза, если с первого раза не получится. noob 16 мая '15 в 19:23
  • Это единственное, что у меня сработало. Сначала я попробовал все остальные решения. Mac 5 окт.
  • 2
    В Android Studio 3.1.1 эта опция находится в File -> Sync Project with Gradle FilesHrishikesh Kadam 26 июл.
159

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

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

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

7
  • 9
    Еще один удивительный подвиг разработчиков студии Android. Возврат к предыдущему состоянию 3.2.1был на самом деле единственным решением, которое сработало для меня ...Vucko 12 фев '19 в 13:32
  • 1
    Поразительно, но проблема все еще сохраняется 2 месяца спустя. Последняя версия (3.3.2) не исправила это, а 3.2.1 исправила. Jake Lee 24 марта '19 в 21:20
  • Вместо того, чтобы возвращаться к Gradle, 3.2.1вы также можете обновить Android Studio до версии 3.3. Смотрите мой ответ здесьarne.z 5 апр '19 в 11:10
  • он работал, изменив 3.3.0 на 3.2.1, но мой вопрос, он работал нормально на 3.3.0, я только что рефакторинг и обновил файл манифеста xml и файл gradle и синхронизировал градиент. Могу я узнать, в чем может быть причинаinsoftservice 8 апр '19 в 10:25
  • 25 часов в Интернете, и похоже, что это единственное рабочее решение. Спасибо студии Android: (....Nahabwe Edwin 1 мая '19 в 9:34
109

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

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

введите описание изображения здесь

проверьте версию buildTools в моем sdk введите описание изображения здесь

Из сборки 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

введите описание изображения здесь

0
58
  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стало недействительным. Как результат: не может разрешить R.

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

4
  • Отсутствующее изображение, на которое ссылается один из моих XML-файлов, вызвало у меня эту проблему. Поместите изображение в папку, очистите и R снова счастлив. Casey Murray 11 сен.
  • Я случайно дважды определил свою строку в strings.xml. Студия этого вообще не показывала. X- (Спасибо за ответ.codingjeremy 16 сен.
  • 6
    Почему нет обратной связи, подчеркивающей плохие XML-файлы в среде IDE? Fuhrmanator 21 сен '18 в 19:46
  • Когда происходит что-то вроде того, что вы упомянули, проблема выделяется в xml. Я перепробовал все, что смог найти в Интернете, но мою проблему ничего не решило, хотя приложение работает нормально. Aliton Oliveira 26 ноя '19 в 23:06
52

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

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

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

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

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

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

4
  • Не помогло. Пробовал чистить / восстанавливать тоже. Ошибка произошла после того, как я переместил пакет java в другой пакет. Интересно, что в одном пакете к классу R можно получить доступ, но нельзя получить доступ в пакете, который я переместил. rint 5 ноя '16 в 12:02
  • В более поздних версиях Android Studio Invalidate и Restart теперь являются выбором меню по умолчанию. Это должно помочь хотя бы нескольким людям. (Жаль, что они не исправляют все сумасшедшие ошибки, которые вызывают эту ошибку в первую очередь!)SMBiggs 24 мая '17 в 4:05
  • 2
    Я получил эту ошибку после перемещения и переименования проекта. Это решило проблему R после того, как очистка и перезапуск не помогли. Спасибо. FrankKrumnow 25 июл.
  • Это определенно правильный ответ, если вы сначала попробовали 1.) Очистить и перестроить 2.) Обеспечение правильности ваших XML-файловMachine Tribe 1 авг.
45

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

import com.example.yourproject.R;
2
  • 1
    Ах, и перед первой сборкой все еще будет сообщение об ошибке. Однако вы просто нажимаете кнопку сборки, Android Studio сгенерирует файл R, и сборка завершится успешно. ninjahoahong 12 марта '14 в 7:44
  • и я думаю, что после исправления лучше очистить свой проект, а затем выполнить сборку. или нажмите Shift + F9 для отладки с помощью устройства или эмулятора. Я предпочитаю отлаживать на реальном устройстве. ninjahoahong 12 марта '14 в 8: 032014-03-12 8:03
27

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

gradlew clean

или

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

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

4
  • спасибо, у меня тоже сработало. Небольшой вопрос - где мне набрать gradlew clean, если я хочу сделать это таким образом (я сделал «Инструменты» -> «Android» -> «Синхронизировать проект с файлами Gradle»)? Sergii 02 сен '14 в 12:19
  • Откройте командный терминал, перейдите в каталог проекта и выполните "./gradlew clean"chawkinsuf 15 сен '14 в 19:36
  • Как это решает проблему лучше, чем «Rebuild Project»? IgorGanapolsky 4 марта '15 в 2:35
  • Да, в моем случае я добавил файл png с названием «import.png». Мне пришлось переименовать его, в моем случае "import_icon.png", после чего проект скомпилировался нормально. mihai71 11 мая '16 в 14:10
17

Файл R.java содержит ссылку между xml и java-страницей. «R не может быть разрешен» возникает только в том случае, если есть проблема с некоторыми из ваших файлов ресурсов. Итак, лучший и эффективный способ - удалить последний сделанный xml или нарисовать в файле res. а потом снова начать оттуда согласно норм кодирования андроида. Это единственный способ. Эффективный и правильный способ.

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

1
  • В моем случае были проблемы не только с XML, но и с PNG (в drawable). CoolMind 20 апр '16 в 8: 092016-04-20 8:09
14

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

2
  • я считаю, что там все обновлено. могло ли это вызвать такую ​​проблему? ez4nick 11 июня '13 в 21:58
  • если у вас не установлены новые инструменты сборки SDK , да. invertigo 11 июня '13 в 22:57
14

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

Просто зайдите в Build -> Clean Project .

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

Также проверьте свою версию Android Studio.

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

13

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

2
  • Это случилось со мной после того, как я изменил имя своего пакета, но каким-то образом студия Android оставила его import com.example.old-package-name.R, поэтому мне пришлось переименовать файл import. auspicious99 28 мая '20 в 11:43
  • Я переместил некоторые элементы пользовательского интерфейса в подпакет, а затем получил ошибку, мне нужно было импортировать R из родительского пакета. bweber13 21 дек.
11

Просто очистите свой проект и синхронизируйте проект с помощью Gradle File.введите описание изображения здесь

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

1
  • Следует отметить, что щелчок правой кнопкой мыши по «приложению» и нажатие кнопки синхронизации в меню этого не позволяет. Спасибо. Mafro34 9 фев '15 в 20:30
10

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

  1. Заглавная буква в моих ресурсах для рисования.
  2. Импорт Android.R, добавляемый Android Studio (или Eclipse)
  3. Ошибка в XML-файле
1
  • У меня возникла проблема из-за ошибки в одном из моих XML-файлов. Решил проблему, затем сделалBuild->Clean ProjectAjCodez 29 апр '18 в 1:03
10

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

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

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

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

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

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

Осмотр

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

2
  • Интересно, что у меня была эта проблема только с одним файлом, и я запустил процесс «Проверка кода», и он очистился сам (очистка и восстановление не исправили). Должно быть, что-то застряло в Линте, и только это могло быть убрано. Спасибо! rundavidrun 28 нояб.
  • Спасибо тебе за это! Хотя при этом было обнаружено много общих ошибок, чего и следовало ожидать, часть, которая разрушила весь замок, была небольшой синтаксической ошибкой в ​​XML-файле, созданном Asset Studio! Как только я решил эту проблему, «Чистый проект» позволил мне двигаться дальше. Bink 24 июля '18 в 20: 012018-07-24 20:01
9

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

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

File Menu -> Invalidate Caches / Restart ...

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

9

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

Имеет ли не помощь:

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

Помогает:

или

в 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

1
  • Вы спасли мою жизнь ! Обновление студии Android до 3.4 решило проблему для меняArtory 4 мая '19 в 16:06
8

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

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

Импорт из 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. Вы делаете это, перейдя в меню «Сборка» вверху и выбрав «Очистить проект».

8

Просто перейдите в список верхнего меню Android. нажмите на меню " Сборка" , в разделе "Сборка" выберите " Перестроить проект".

введите описание изображения здесь

0
7

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

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

Именно так: введите описание изображения здесь

Это чуть не свело меня с ума, я не переношу цвет чтения при программировании.

Наконец я обнаружил, что эта сложная проблема вызвана размером моего файла R.java. Мой проект очень большой, он поддерживает множество языков и размеров экрана. Ресурсов так много, что размер моего файла R.java составляет около 2,5 МБ .

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

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

idea.max.intellisense.filesize=2500

к :

idea.max.intellisense.filesize=5000

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

1
  • В Android 3.2 просто помогите / отредактируйте пользовательские свойстваBeto 4 фев '19 в 15:13
6

Сборка> Чистый проект

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

Удачи и удачи в ваших проектах.

1
  • Спасибо. У меня это тоже сработало. Я заменяю некоторые изображения на доступные для рисования и получаю эту ошибку. KCP 11 марта '16 в 11: 572016-03-11 11:57
6

Сделайте: Сборка> Чистый проект

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

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

6

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

Что я делаю:

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

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

6

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

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

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

5

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

  • Синхронизировать проект с файлами Gradle
  • Выполнение сборки -> Чистый проект
  • Выполнение файла -> Недействительные кеши

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

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

ОШИБКА

android:id="username"

ИСПРАВЛЕНИЕ

android:id="@id/username"

Messing up things related to resources in xml files is a major reason for this error.Beware of the fact that it may not be shown as an error in the xml layout file.

ПРИМЕЧАНИЕ

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

0
5

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

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.`
1
  • Это хороший ответ, хотя мне нужно было только поместить «//» в файл Gradle и выбрать повторную синхронизацию. Затем все AS распознали импорт и позволили мне запустить приложение. Val 10 мая '18 в 4: 032018-05-10 04:03
4

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

android:id="@+id/viewID"

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

0
4

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

4

У этой ошибки много причин.

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

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

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

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

Обязательно будет работать, так как никаких изменений не будет.

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

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

4

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

import rootpackage.R;

Никаких перестроек, синхронизации и прочего ...