Android Не удается разрешить символ '? Attr/selectableItemBackground'
<android.support.v7.widget.CardView
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/card_outer_padding"
android:layout_marginTop="@dimen/card_outer_padding"
android:layout_marginRight="@dimen/card_outer_padding"
android:layout_marginBottom='@{model.cardBottomMargin}'
android:foreground="?attr/selectableItemBackground"
android:onClick="@{model::onCardClick}"
app:cardElevation="2dp"
app:cardCornerRadius="2dp"
app:cardUseCompatPadding="true">
</android.support.v7.widget.CardView>
Я получил сообщение об ошибке
Невозможно разрешить символ ?attr/selectableItemBackground
Проверяет ссылки на ресурсы в файлах Android XML.
<TextView
android:id="@+id/country_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="40dp"
android:text="@{model.name}"
style="@style/TextAppearance.AppCompat.Headline"
tools:text="Country"/>
И я получил аналогичную ошибку для выше, а также
Невозможно разрешить символ '@style/TextAppearance.AppCompat.Headline'
Проверяет ссылки на ресурсы в файлах Android XML.
Любой указатель будет замечательным! Спасибо!
Кажется, что это связано с этой нитью, но решение не было предоставлено:
Ответы
Ответ 1
Я считаю, что это проблема связи с плагином IDE и Android Gradle. В любом случае единственный способ, которым я надежно найден разрешить, - это удалить проблемные библиотеки в папке .idea/libraries/
.
Итак, для вас, поскольку проверки lint не распознают ?attr/selectableItemBackground
- LOCATE
Gradle__com_android_support_xxx.xml
файлы
- УДАЛИТЬ эти файлы
- SYNC IDE с файловой системой
- Проект SYNC с Gradle файлами
- ОТПРАВИТЬ ваш проект
Вы можете синхронизировать, нажав на "Файл" вверху на панели инструментов и выбрав "Синхронизировать с файловой системой", а затем выбрав "Синхронизировать проект с Gradle файлами".
Я пробовал другие предлагаемые решения - имел зависимость appcompat-v7
в моем файле build.gradle модуля и репозитории google()
в качестве первой строки в зависимостях проекта build.gradle. Нада.
Эти решения также не помогли...
- Недействительность кэширования/перезапуска не работала.
- Очистка/Восстановление проекта.
Ответ 2
Для версии Lollipop
и выше используйте это:
android:foreground="?android:attr/selectableItemBackground"
для Pre-Lollipop
используйте это:
android:foreground="?attr/selectableItemBackground"
Ответ 3
2 варианта:
Опция 1
Другая возможная причина: хранилище Google maven не настроено для сценария сборки.
Откройте основной проект build.gradle и добавьте следующую строку:
buildscript {
repositories {
google() <-- this
// Be also sure that google() is before jcenter()
}
}
Без этого он не сможет загрузить плагин Android Studio Gradle 3. 0+. Он распространяется не в jCenter, а в репозитории Google maven.
Вариант 2
Запустите эту команду в корне проекта и повторно синхронизируйте проект
Linux:
rm.idea/libraries/Gradle__com_android_support_*.xml
Окна:
del.idea\libraries\Gradle__com_android_support_*.xml
Ответ 4
Я столкнулся с такой же ошибкой после обновления Kotlin. Решено с помощью "Неправильные кэши/перезагрузка"
ОБНОВЛЕНИЕ Сегодня это решение не помогло мне. Но решение этого вопроса сделало: Android Studio 3.1 не может разрешить символ (темы, виджет, атрибут и т.д.)
Ответ 5
Оба ресурса определены в Библиотеке поддержки Android и, поскольку эти символы не могут быть разрешены, кажется, что вам не хватает определения зависимости от поддержки.
dependencies {
compile "com.android.support:appcompat-v7:$androidSupportVersion"
}
Ответ 6
В моем случае добавьте maven в build.gradle Project в buildscripts.repositories И allprojects.repositories, Это выглядит так:
google()
maven { url 'https://maven.google.com' }
jcenter()
Ответ 7
Я решил,
- Удаление папки .idea в проводнике проекта.
- Недействительные кеши/перезапуск
- Обновить проект Gradle
Ответ 8
Вот что решил для меня:
- Закрыть Android Studio
- Удалить каталог .idea в корневом каталоге проекта
![enter image description here]()
- Реимпортировать проект
![enter image description here]()
Ответ 9
Я обновил свою версию Gradle до 4.10.1 и исправил и восстановил ее. В папке .idea не было папки с библиотеками.