Android Studio 3.1 не может разрешить символ (темы, виджет, атрибут и т. д.)

Сегодня я обновил Android Studio до 3.1, и теперь Android Studio сообщает, что не может разрешать символы для большинства ресурсов (например, ThemeOverlay в styles.xml или ?attr/actionBarSize). Похоже, что это пока не мешает мне создавать или запускать эмулятор, но эти ошибки заставляют меня нервничать.

Кто-нибудь еще сталкивался с этой проблемой? Как я могу решить эту проблему? Я пробовал синхронизировать gradle и очистить свой проект, но, похоже, это совсем не помогает.

Любые идеи?

Я использую Android Studio 3.1 с Gradle версии 4.4 и Gradle Plugin 3.1.0

Обновлено: Эта проблема затрагивает обновление до Android Studio 3.1.1, 3.1.2, 3.1.3, 3.1.4, а также подключаемого модуля Gradle до 3.1.1, 3.1.2, 3.1.3 и 3.1.4. Однако ответ ниже все еще работает.

в 3.1.1 мы тоже это получаем!

LOG_TAG 11.04.2018 09:53

в 3.1. 2 одинаковые проблемы ниже не работают, что делать

giveJob 29.04.2018 20:51

@HemanthSP Закрытие и импорт проекта у меня сработали после обновления Android Studio до 3.1.2.

JPM 01.05.2018 15:52

Я пробовал 100 способов, ничего не работало

giveJob 03.05.2018 07:21

попробуйте это: stackoverflow.com/a/50114143/2855059

M D P 21.07.2018 08:01
67
5
25 913
16
Перейти к ответу Данный вопрос помечен как решенный

Ответы 16

По какой-то причине эти атрибуты больше не встречаются в 26 библиотеках. Для увеличения этих библиотек вам также необходимо увеличить ваш compileSdk до 27. Вероятно, вам также придется загрузить sdk 27

Краткая версия, далее в приложении «graddle»

android {
    compileSdkVersion 27
    //...
}

dependencies {
    implementation 'com.android.support:appcompat-v7:27.1.0'
    implementation 'com.android.support:design:27.1.0'
    //...
}

Длинная версия, проверьте все следующие файлы:

gradle-wrapper.properties

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

build.gradle (Проект)

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'


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

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

И, наконец, build.gradle (приложение)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "cl.cutiko.testingupdate"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:design:27.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

Спасибо, cutiko, но, к сожалению, мне это не помогает, так как я уже использовал API 27, и ваши файлы похожи на мои.

JPM 28.03.2018 15:29

Хорошо, так что здесь дикая догадка, построить / перестроить проект? Также чисто?

cutiko 28.03.2018 16:47

Спасибо, cutiko. Я уже пробовал это, и это тоже не помогло.

JPM 28.03.2018 17:37

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

File> Invalidate Caches / Restart…

introducir la descripción de la imagen aquí

Спасибо, Jorgesys, но и у меня это не работает.

JPM 28.03.2018 15:30

Впервые в истории простое решение действительно сработало! Спасибо.

AhabLives 16.05.2018 20:14

@AhabLives Я надеюсь, что в будущих версиях AS эта проблема будет решена, но на данный момент достаточно отключить кеширование и перезапустить.

Jorgesys 16.05.2018 20:20

Попробовав несколько решений, у меня, наконец, работает

Kislingk 11.09.2018 18:32
Ответ принят как подходящий

Закройте проект и снова импортируйте его. Работал у меня сегодня.

import project

Аннулирование кешей, удаление кешей градиентов вручную и другие уловки не помогли. Закрытие проекта и его повторный импорт сработали. Ух ты! Я с нетерпением жду Android Studio 4.0. Может быть, это сожжет мой дом

BenjaminButton 28.03.2018 17:05

Открыть существующий проект Android Studio также можно в Добро пожаловать в Android Studio.

Andy Sander 29.03.2018 07:08

Я закрыл и снова открыл проект как существующий проект Android Studio (не импортировал его), и он сработал!

Andrew Glukhoff 29.03.2018 10:34

Для тех из вас, кто не хочет повторно импортировать проект, решение, которое сработало для меня, находится здесь: stackoverflow.com/questions/49520097/…

N Dorigatti 29.03.2018 12:18

К вашему сведению, я обновил Android Studio с 3.1 до 3.1.1, и проблема появилась снова. Однако этот ответ все еще работает, поэтому я обновил сообщение.

JPM 10.04.2018 16:10

Сначала я увидел это и подумал, что это ничем не отличается от недействительности кешей, и я пробовал разные решения в течение 2 часов, ни одно из них не сработало, наконец, я попробовал, думая, что это никогда не сработает, но БУМ это сработало. Почему ты делаешь это со мной, Боже?

Sai 22.04.2018 16:27

Что за..? Я потратил часы на эту проблему, попробовал все возможные решения, и это было решением? Я думаю, что Google должен просто признать, что они потерпели неудачу с AS.

Zuhaib Ahmad 26.04.2018 06:49

ПОЧЕМУ ЭТО РАБОТАЕТ ?!

AndrewPK 26.04.2018 23:14

Wooowww я не знаю, почему это сработало, но большое вам спасибо.

RushDroid 26.06.2018 13:55

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

Saman Sattari 04.08.2018 08:22

Я могу подтвердить, что в конечном итоге это сработало и на AS 3.2.2. Я пробовал несколько раз, но проблема не исчезла. Потом несколько часов спустя, и теперь все работает. Определенно где-то есть проблемы с кешем или фоновым процессом. Я как раз собирался удалить всю свою установку AS, когда решил вернуться сюда и прочитать еще раз. Перед повторным импортом убедитесь, что вы удалили элемент из «старого» списка. Вдобавок я дважды щелкнул папку, чтобы перейти в корневой каталог, затем ok. (Разработчикам AS: добавьте процедуру очистки кеша. AS + Gradle в настоящее время отравляет систему артефактами.)

not2qubit 04.04.2019 01:05

Закройте и снова откройте проект как существующий проект Android Studio.

Закрытие проекта, а затем открытие уже существующего творит чудеса!

Ааааи ... это сработало для меня! Удивительно. Хотя код и раньше компилировался нормально, красное подчеркивание меня слишком раздражает. Спасибо чувак.

Aguragorn 30.05.2018 06:46

Вы можете попробовать закрыть проект и выйти из Android Studio (только закрытие и повторный импорт не помогли мне). Запустите Android Studio и снова откройте проект. Это сработало для меня!

Я закрыл и снова открыл проект как существующий проект Android Studio (не импортировал его), и он сработал! Благодаря комментарию Андрей Глухофф.

Библиотека поддержки не синхронизирована.

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

  1. Откройте файл build.gradle вашего модуля приложения.
  2. Закомментируйте строки implementation для библиотеки поддержки. Для меня это выглядит так:

    //implementation 'com.android.support:appcompat-v7:27.1.1'
    //implementation 'com.android.support:recyclerview-v7:27.1.1'
    //implementation 'com.android.support.constraint:constraint-la
    
  3. Синхронизируйте свой проект с gradle. Теперь у вас будут ошибки. Не беспокойся об этом.

  4. Раскомментируйте строки implementation, которые вы ранее закомментировали.

    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-la
    
  5. Снова синхронизируйте свой проект с gradle.

Ошибка «Невозможно разрешить символ» должна исчезнуть. Это сработало у меня несколько раз в разных проектах.

Примечание

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

Это действительно сработало для меня ... Закрытие проекта и повторный импорт не помогли.

Hugo Allexis Cardona 06.08.2018 19:54
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.android.support:design:26.1.0'

обновите свои зависимости с указанным выше в build.gradle (проект)

и поместите приведенный ниже код в build.gradle (Module: app)

classpath 'com.android.tools.build:gradle:3.1.1'
classpath 'io.realm:realm-gradle-plugin:3.7.1'
classpath 'com.google.gms:google-services:3.1.0'

Просто импортировать проект снова для меня не сработало.

Мое решение было

  1. Удалите папку .idea внутри вашего проекта.
  2. Затем закройте проект File> Close Project
  3. Затем импортируйте проект File> New > Import ProjectИЛИ ЖЕ из экрана приветствия Import Project (Gradle, Eclipse ADT, etc.).

Смотрите скриншот для получения дополнительной информации

1st solution

Или же

2nd solution

Для меня тот же симптом / ошибка был вызван перетаскиванием нового изображения в папку 'drawable-xxhdpi' с именем, которое не понравилось Android Studio - например, с числом или заглавной буквой в имени.

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

Даже после синхронизации приложения и проекта очистки и восстановления проблема оставалась в том, что «R» не распознавался без указания других ошибок.

Закрытие и импорт проекта, как предлагалось в других ответах, не сработали, что имеет смысл с учетом основной проблемы.

Однако, хотя кажется, что это не сработало для других в прошлом, судя по другим вопросам и ответам на SO, удаление нового изображения из папки с возможностью рисования действительно сработало.

Точно так же и лучшее решение, очевидно, переименование изображения для удаления любых символов, которые не нравятся Android в именах ресурсов, а затем выполнение чистого и / или перестроенного проекта также работало.

Пример

setContentView(R.layout.activity_login_ativity);

  1. Поместите курсор в R
  2. Нажмите Alt + Enter
  3. Выберите класс импорта R

Работай на меня :)

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

sɐunıɔןɐqɐp 07.08.2018 11:26

Как я это решил.:
how to solved

Я обновил Android studio до версии 3.2, и эта проблема была решена двумя шагами.

  1. Удалено со страницы приветствия студии Android.

  2. Откройте проект снова.

Работал у меня.

Проблема # 1

Моя проблема была связана с тем, как я использовал альфа / бета версию плагина Android.

File > Project Structure > Project

проверьте свой Android Plugin Version

Я использовал что-то под названием 3.3.0-beta, а в другом проекте 3.1.0-alpha

изменение его на 3.2.0, похоже, решает мою проблему, не забудьте также изменить его в build.gradle (Project)

Проблема # 2

У меня была ошибка в одном из моих файлов .xml. Я пропустил ресурс @string. Пожалуйста, проверьте все свои XML-файлы и убедитесь, что они все верны (открытие XML-файла должно активировать линтинг Android Studio, прокрутите файл, он должен жаловаться красным, если что-то не так)

Проблема # 3

В build.gradle я импортировал разные версии библиотек поддержки Android. например

implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:27.1.0'

Убедитесь, что они одной версии. И убедитесь, что Android Studio ни на что не жалуется внутри ваших зависимостей gradle. Возможно, некоторые из ваших зависимостей также импортировали разные версии библиотеки поддержки Android.

Шаги, которые нужно предпринять после №1, №2 и №3

Очистите свой проект Build > Clean Project

Сделайте недействительный кеш и перезапустите File > Invalidate Caches / Restart

После перезапуска дождитесь завершения сборки gradle, а затем вуаля!

Я обновил свою версию gradle до 4.10.1 и сделал «исправить и повторно импортировать». Раньше в .idea не было папки с библиотеками. И тогда это сработало

Аналогичная ошибка у меня при обновлении до com.android.tools.build:gradle 3.3.1 и gradle-4.10.1

Я пробовал следующий метод, но не работал:

  1. Clean Project - Rebuild Project
  2. Invalidate Caches / Restart
  3. Проверить ошибку .xml (с xml ошибок не обнаружил)
  4. Изменить файл .iml

Я исправляю эту ошибку, изменяя com.android.tools.build:gradle 3.2.1 и Restart my mac, я не знал, какой из них может исправить, но это действительно сработало для меня.

Другие вопросы по теме