"Не вдається вирішити символ R" в Android Studio


715

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


в минулому я отримував помилки xml, такі як: панель прогресу не можна передавати на android.widget.textview, і я виправив це, просто змінивши назву textview. Я все ще не знаю, що саме спричинило помилку.
ez4nick

Якщо ви змінили ім'я, можливо, ви зараз намагаєтесь використовувати посилання рядка, яке не існує в res / strings.xml?
Очне яблуко

2
Я шукав багато разів, перш ніж задавати це питання, і знайшов багато подібних питань, включаючи те, що ви згадали. Я читав пропозицію з цього питання, і немає жодного імпорту Android.R в жодному з моїх файлів Java.
ez4nick

2
Привіт усім, я забув про це запитання, оскільки його так давно задавали. Я повинен був прийняти власну відповідь рік тому, що зараз коментар вище цього. Проблема полягала лише в тому, що андроїд-студія в той час була на такому ранній стадії, і як новий розробник я ніколи не повинен був ніколи її використовувати. Будьте впевнені, все працює нормально і зараз. Якщо це можливо, будь ласка, скасуйте мою оригінальну відповідь, щоб я міг її прийняти.
ez4nick

3
Не знайшовши R isnt ваша помилка, її помилка, викликана помилкою Build, Виправіть інші ваші помилки, і вам слід добре.
Just_someone

Відповіді:


720

У мене був і цей випуск. Просте "gradlew clean" та "gradlew build" зробили свою справу.


Клацніть на Збірка-> Очистити проект, і це виконає очищення градулей


56
іноді вам також потрібно перезапустити android studio. або принаймні для мене.
Користувач Foo Bar

24
Для тих, хто конвультує над використанням командного рядка, натисніть на Збірка-> Очистити проект, і він виконає "чистку gradlew". ;)
Містер Конколато,

22
Не пощастило ... Відновлення очищення не працює для мене
CandleCoder

7
якщо очистити, відновити, недійсний кеш-перезапуск не вирішить перейти до: import package.R;
Судіп Бхандарі

2
Для мене це спричинило проблему: Невідповідність ApplicationId в gradle та ім'я пакету в маніфесті (і хоча авто імпорт додав неправильну адресу для файлу R). Я рекомендую цю маленьку статтю, щоб уточнити різницю між ними. blog.stylingandroid.com/package-name-vs-application-id
Тіна

227

В останніх версіях Android Studio, принаймні для мене, працюють такі:

"Інструменти" -> "Android" -> "Синхронізувати проект з файлами Gradle"

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

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


Якою версією Android Studio ви користувались у той час?
Джоель Хендвелл

Не працює для мене (Android Studio 0.8.14). Але, Build> Clean проект працює добре.
Phat H. VU

Досі працює в Android 1.2.1. Не забудьте зробити це не один раз, якщо це не працює в перший раз.
noob

Це єдине, що працювало на мене. Я спробував усі інші рішення спочатку.
Мак

1
У Android Studio 3.1.1 ця опція знаходиться у меню Файл -> Синхронізувати проект з файлами Gradle
Hrishikesh Kadam

155

Я використовував gradle 3.3.0. Це був головний винуватець. Витрачено 6,50 години з мого життя. Gradle 3.2.1 видалив помилку.

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

Проблема вирішена після зміни версії gradle. Детальну історію можна знайти тут .


9
Ще один дивовижний подвиг розробників студій Android. Повернення до 3.2.1насправді було єдиним рішенням, яке працювало на мене ...
Вучко

1
Дивно все ще проблема через 2 місяці. Остання версія (3.3.2) не виправила, 3.2.1 зробила.
JakeSteam

Замість того, щоб повернутися до gradle, 3.2.1ви також можете оновити Android Studio до версії 3.3. Дивіться мою відповідь тут
arne.z

він працював, змінюючи 3.3.0 на 3.2.1, але на моє запитання, він працював нормально на 3.3.0. У мене був лише рефактор та оновлений файл маніфесту та файл gradle та синхронізовано gradle. Чи можу я знати, що може бути причиною
insoftservice

25 годин Інтернету і, схоже, це єдине робоче рішення. Дякую андроїд-студії: (....
Nahabwe Edwin

108

У мене є аналогічна проблема, і ось що я зробив:

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

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

перевірити версію buildTools у моєму SDK введіть тут опис зображення

Від gradile 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

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


Це теж працювало для мене, змінюючи збірки та налаштовуючи файли gradle (модуль)
Samuele Bolognini

Дякую, як мудро, це було рішення.
App Dev Guy

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 став недійсним. Як результат: не вдається вирішити Р.

Отже, перевірте свої *.xmlфайли та очистіть проект.


Це дійсно врятувало мені життя [PLUS ONE]
GingerHead

Пропущене зображення, на яке посилався один із моїх XML, спричинило цю проблему для мене. Помістіть зображення в папку, очистили і R знову щасливий.
Кейсі Мюррей

У мене було випадково два рядки визначені у stringings.xml. Студія взагалі цього не показувала. X- (Дякую за вашу відповідь.
codingjeremy

Це для інших розробників, які читають. Один лише підхід повинен вирішити питання, як це було для мене.
Paramvir Singh Karwal

6
Чому в IDE немає зворотного зв'язку для підкреслення неправильних XML-файлів?
Фурманатор

53

Якщо ви помітили цю помилку після переміщення файлів або каталогів Java в інші місця, ви можете гарантувати, що Android Studio заплутався. І вгадайте, що? скасування цих дій не вирішує проблему.

Тож ви спробуйте чисту, але це не працює.

І перезапуск також не працює.

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

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

Це означає, що вам не тільки доведеться перезавантажувати, але потрібно скасувати ці кеші, щоб відновити (або точніше відновити) розумність.


Не допомогло. Спробували також очищення / відновлення. Помилка сталася після того, як я перемістив пакет java в інший пакет. Цікаво, що в одному пакеті можна отримати доступ до класу R, але в ньому не можна отримати доступ, який я перемістив.
rint

У останніх версіях Android Studio, Invalidate та Restart тепер є вибором меню за замовчуванням. У цьому повинні допомогти хоча б кілька людей. (Шкода, що вони в першу чергу не виправляють усіх шалених помилок, які спричиняють цю помилку!)
Скотт Біггс,

1
Я отримав цю помилку після переміщення та перейменування проекту. Це вирішило проблему R, адже очищення та перезавантаження не зробили. Дякую.
FrankKrumnow

2
Це займає приблизно такий же час, як отримання чашки кави - яку, в свою чергу, можна використовувати для прийняття приємного кавового душу, якщо вона все ще позначає R червоним ... ヽ (´ ー `) ノ
ZooMagic

1
знайшов gif для мого попереднього коментаря -> tenor.com/view/…
ZooMagic

30

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

import com.example.yourproject.R;

1
Ага, і перед першим створенням буде повідомлення про помилку. Однак ви просто натисніть збірку, Android Studio генерує файл R, і збірка має успіх.
ninjahoahong

і я думаю, що краще, що після виправлення ви повинні очистити свій проект, а потім побудувати. або натисніть Shift + F9 для налагодження у вашому пристрої чи емуляторі. Я віддаю перевагу налагодження на реальному пристрої.
ninjahoahong

Це найкраще рішення. Спасибі чувак
Арундев

ця відповідь була чарівною паличкою. спасибі
leeCoder

28

Здається, існує багато причин для цього питання. Нещодавно я додав активність для тестування з назвою NewActivity. Це створило файл з назвою, res/menu/new.xmlа gradle це ім'я не сподобалось, оскільки new - це зарезервоване слово.

gradlew clean

або

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

Це, безумовно, добре спробувати, але у вас можуть виникнути інші проблеми, які потрібно вирішити, перш ніж виконувати ці команди.


спасибі працювали і для мене. Невелике запитання - де я повинен набрати gradlew clean, якщо я хочу це зробити так (я зробив "Інструменти" -> "Android" -> "Синхронізувати проект з файлами Gradle")?
Сергій

Відкрийте командний термінал, перейдіть до каталогу проекту та виконайте "./gradlew clean"
chawkinsuf

Ось що це було для мене. Дякую!
TinyGrasshopper

Як це вирішує проблему краще, ніж "Проект відновлення"?
ІгорГанапольський

Так, у моєму випадку я додав png файл під назвою "import.png". Мені довелося перейменувати його, у моєму випадку "import_icon.png", і тоді проект склав нормально.
mihai71

17

Файл R.java містить посилання між xml та java-сторінкою. "R не можна вирішити" виникають лише в тому випадку, якщо є проблема з деякими файлами ресурсів. Отож, найкращим та ефективним способом є видалення останнього зробленого XML або малювання у файлі res. а потім знову починати звідти відповідно до норм кодування Android. Це єдиний спосіб. Ефективний і правильний спосіб.

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


У моєму випадку були проблеми не лише у XML, але й у PNG (у малюванні).
CoolMind

15

Ваш код просто зашифрований. Відповідь досить проста.

Просто перейдіть до Build -> Clean Project .

Це повинно зробити трюк.

Перевірте також свою версію Android Studio.

Зараз я використовую Android Studio 3.0.1 .


14

Ви нещодавно оновили інструменти SDK? Запустіть менеджер SDK для android і переконайтеся, що у вас є найновіші інструменти SDK, які тепер відокремлені від інструментів платформи. У мене була ця сама проблема, коли я вперше оновив свого менеджера SDK, пакет інструментів збирання SDK не з’являвся для встановлення / оновлення, поки я не закрив і не відкрив менеджер SDK.


я вважаю, що там все актуально. чи може це насправді викликати подібну проблему?
ez4nick

якщо у вас не встановлені нові інструменти збирання SDK , так.
інвертиго

12

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

І проблема буде вирішена.


Слід зазначити, що правою кнопкою миші на "додаток" та натисканням кнопки синхронізації в меню цього не досягається. Дякую.
Mafro34

11

У мене це було з

  1. Малі літери в моїх джерелах ресурсів.
  2. Імпортувати Android.R, доданий Android Studio (або Eclipse)
  3. Помилка у файлі xml

У мене виникла проблема, оскільки в одному з моїх XML-файлів сталася помилка. Build->Clean Project
Вирішене

11

Нещодавно у мене виникло це питання, і очищення / створення тощо не вирішило його. Я здогадувався, що у мене десь проблема, але не знав, де її шукати (чи було це в маніфесті, файлах xml-файлів тощо?).

Якщо щось не так, ви можете дізнатися, що це таке, виконавши аналіз коду.

У меню вгорі виберіть:

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

Результати перевірки містять елемент, який називається "Android". Тут ви отримаєте список всього, що спричиняє проблеми у ваших ресурсах та файлі маніфестів. Помилки відкриють згенеровані файли XML із вашої збірки, які покажуть будь-які помилки червоним кольором.

Моя точна проблема була викликана тим, що я використовував файли маніфестів на основі смаку і скопіював деякі дозволи всередині <application> на основі аромату і випадково тегу в ароматі.

Інспекція

ОНОВЛЕННЯ: У мене виникла проблема після того, як Android Studio все ще показав помилку після виправлення, хоча я тепер міг будувати та працювати на відмінно, поки помилка все ще була. (Я використовую канарну збірку, тому перекладаю її на даний момент)


Цікаво, що у мене виникла ця проблема лише в одному файлі і запустив процес "Код перевірки", і він очистився (очистити та відновити його не виправили). Напевно, у Линта щось застрягло, що тільки це можна було б прояснити. Дякую!
rundavidrun

Дякую за це! Хоча це знайшло багато загальних помилок, яких очікувалося, деталь, яка збила весь замок, була невеликою синтаксичною помилкою у файлі XML, сформованому Asset Studio! Після того як я вирішив це, проект «Чистий» дозволив мені рухатись вперед.
Бінк

10

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


1
Я був тут, перш ніж подумав. Ще раз
дякую

1
Це працювало для мене. Дуже дякую.
Водолій_Гірл

Це сталося зі мною після того, як я відновив ім'я свого пакета, але якось андроїд-студія покинув цю програму import com.example.old-package-name.R, тому мені довелося перейменувати імпорт.
сприятливий99

9

Це дуже давнє запитання, але воно все ще трапляється багато, і справді вичерпної відповіді тут немає.

У мене була ця проблема більше разів, ніж я хочу визнати. Це може бути викликано найрізноманітнішими проблемами, які, в основному, стосуються вашої структури проекту, що не відповідає очікуваному. Ось перелік усіх проблем, які у мене виникли:

Імпорт з 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 згортає папки, які містять лише іншу папку, в один рядок.

Особливо, якщо ви коли-небудь змінюєте ім’я свого додатка, вам потрібно переконатися, що основне дерево / java / com / домен / AppName оновлено. Також переконайтесь, що тег пакета у вашому AndroidManifest.xml правильний.

Якщо в файлах Gradle або в AndroidManifest.xml є помилки, це не дозволить Android Studio належним чином створити ваші файли ресурсів. Файли Gradle можуть бути порушені, інколи оновивши Android Studio, особливо до версій до 1.0. Іноді це відбувається тому, що він перестає підтримувати старіші версії плагіна Gradle, тому вам потрібно оновити номери версій. Іноді може бути важко знайти, які існують поточні версії. На сьогодні, 7/17/15, мої програми прекрасно складаютьсяcom.android.tools.build:gradle:1.2.3 . Це в блоці залежностей у самому зовнішньому файлі gradle,

Якщо ваш AndroidManifest посилається на неіснуючий драйвовий або рядковий ресурс або активність, він порушиться і спричинить цю помилку. Іноді, якщо що-небудь посилається на неіснуючий ресурс, що виводиться з драйву або рядка, ви отримаєте цю помилку.

Якщо у ваших ресурсах є файл із пошкодженнями або недійсний файл XML, ви отримаєте цю помилку.

На мій досвід, іноді Android Studio просто ікає без будь-якої причини, і вам потрібно перезапустити його та / або ваш ПК. Не знаю чому, але іноді це працює.

Якщо у вас є два xml ресурси з однаковим іменем, у каталогах, які не перекривають один одного, у вас може виникнути ця проблема. Наприклад, ви можете мати те саме ім’я у dravable-mhdpi та dravable-xhdpi, оскільки вони перекривають один одного залежно від цільового пристрою, але якщо у вас є те саме ім’я в макеті та меню, це спричинить проблеми. Перейменуйте або видаліть один із файлів.

Якщо з певною проблемою виникають лише деякі ресурси, ці ресурси, швидше за все, знаходяться в неправильному каталозі.

В одному випадку мені довелося повністю перевстановити Android Studio. Я не знаю, що було не так, але це спрацювало.

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

Файли XML із зарезервованими словами для імен можуть спричинити цю проблему. Перейменуйте або видаліть їх.

Існує кілька способів, у який ваш файл Gradle може посилатися на версію інструментів збирання, яку ви не встановили. Виправте це, змінивши Gradle або завантаживши відповідні інструменти для збирання.

Нарешті, після того, як ви виправили що-небудь не так, вам потрібно очистити проект Gradle. Виконайте це, перейшовши до меню "Збірка" вгорі та вибравши Очистити проект.


9

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

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


9

Я зіткнувся з цією проблемою, коли вручну перейменував папку домену свого додатка. Щоб виправити це питання, мені довелося

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

Меню файлу -> Недійсний кеш / Перезапуск ...

Проблема не зникне, як тільки студія 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


Ти врятував моє життя ! Оновлення Android Studio 3.4 вирішена проблема для мене
Artory

8

У мене є особливий випадок цієї проблеми.

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


В Android 3.2 просто допоможіть / редагуйте
Beto

хороша порада, але це не вирішило, що я не можу вирішити символ R
Aliton Oliveira

7

Збірка> Очистити проект

Це працювало для мене. Мав таку ж проблему кілька разів, і це, здається, виправило її. Якщо ви щось не змінили або не назвали змінною Р. Ця проблема зазвичай виникає з нізвідки, коли це трапляється зі мною, тому я думаю, що її просто студії Android вигадують. ха-ха

Приємного вам і удачі у своїх проектах.


Дякую. Це працювало і для мене. Я заміняю деякі зображення на графічні і отримав цю помилку.
KCP

7

Зробіть: Збірка> Очистити проект

ВАЖЛИВО: Переконайтесь, що у вас немає помилок після очищення проекту на панелі повідомлень (Alt + 0). Якщо ви виявили червоні кола зі знаком оклику, ви повинні усунути ці помилки у своєму коді.

Переважно ці помилки пов'язані з @ string / або @ array /. Очистіть проект знову і готово!


7

У мене була така ж проблема, і це трапляється, коли я створюю новий проект.

Що я роблю:

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

Це працює для мене.


7

Мені важко було це виправити.

  • Переконайтеся, що у ваших файлах layout.xml немає помилок.
  • Перейдіть на сторінку Build> Clean project

Це працювало для мене, сподіваюся, воно працює і для вас.


6

У мене була така ж проблема, і більшість випадків її вирішує

  • Синхронізувати проект з файлами gradle
  • Doing Build -> Очистити проект
  • Doing Файл -> втрачає кешей

Але цього разу помилка зберігалася навіть після виконання всіх цих речей і нарешті я знайшов винуватця.

Проблема була у файлі 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.`

Це хороша відповідь, хоча мені потрібно було лише розмістити '//' у файлі gradle та вибрати resync. Тоді всі AS розпізнали імпорт і дозволили мені запустити додаток.
Вал

5

Здається, це позначення справно працює.

android:id="@+id/viewID"

Дизайнерська панель Android Studio, здається, не працює добре.


5

Та ж проблема. Почалося, коли я додав декілька зображень у свою папку, що малюється, і намагався отримати доступ до них. Також додані зображення мали розширення з великої літери. Це, здається, зірвало збірку, оскільки навіть якби я перейменував їх, повідомлення було таким самим, а R - недоступним. Що я зробив, це у файлі .iml, який я шукав. І вилучив їх (наприклад, нижче):

  <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

Причин цієї помилки багато.

  1. Іноді це трапляється для заміни файлу зображення з таким самим іменем.
  2. Припустимо, ви видалили елемент зі свого макета .xml say a, <Button/>але він все ще оголошується в будь-якій діяльності або фрагменті .java.
  3. Набагато більше.

Найкращий спосіб відстежити помилку - це відновити її досить чистою чи синхронізувати, роблячи якусь навмисну ​​помилку.

Якщо це не вирішує вашу проблему, то, мабуть, має бути якась помилка або помилка виконання або помилка, що сталася через неправильне використання ресурсів, може бути як файлом java, чи xml у вашому коді чи дизайном, який змушує зупиняти gradle через (R ) esource файл не може індексувати ваші ресурси належним чином, і ви повинні це визнати.

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

Це обов’язково спрацює, оскільки змін не буде.

Щоб визначити точну помилку, перевірте зміни, розбивши зміни на менший модуль.

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


4

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

Отже .. загальна порада з цього приводу, якщо я можу узагальнити - у вас, ймовірно, є якась проблема у вашому файлі маніфестів чи іншому файлі конфігурації, що перешкоджає правильній збірці. Спробуйте дуже важко дивитися на звіт про помилку, навіть повідомлення під назвою "інформація", щоб отримати будь-які підказки про те, що це може бути ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.