55 votes

Android ne peut pas résoudre le symbole '? 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>

J'ai eu ce message d'erreur

Impossible de résoudre le symbole ?attr/selectableItemBackground Valide les références de ressources à l'intérieur de Android fichiers 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"/>

Et, j'ai eu une erreur similaire pour le ci-dessus ainsi

Impossible de résoudre le symbole " @style/TextAppearance.AppCompat.Titre"
Valide les références de ressources à l'intérieur de Android fichiers XML.

Un pointeur serait génial! Merci!!!! Il semble être lié à ce thread , mais aucune solution n'a été fournie:

143voto

wooldridgetm Points 1876

Je crois que c'est un problème de communication avec l'IDE et Android Plugin Gradle. En tout cas, le seul moyen que j'ai de manière fiable trouvé pour résoudre ce est de supprimer les problématiques de libs dans l' .idea/libraries/ le dossier.

Donc, pour vous, depuis la fibre de contrôles ne sont pas reconnaissant ?attr/selectableItemBackground

  1. LOCALISER l' Gradle__com_android_support_xxx.xml fichiers
  2. SUPPRIMER ces fichiers
  3. La SYNCHRONISATION de l'IDE avec le système de fichiers
  4. SYNCHRONISATION projet avec Gradle fichiers
  5. RECONSTRUIRE votre projet

Vous pouvez synchroniser en cliquant sur "Fichier" dans le haut de la barre d'outils et en sélectionnant "Sync avec le Système de Fichiers", puis en sélectionnant "Sync projet avec gradle fichiers".

J'ai essayé d'autres solutions proposées - a l' appcompat-v7 de la dépendance dans mon module de construire.gradle de fichier et l' google() référentiel de la première ligne dans le projet de construction.gradle dépendances. Nada.

Ces solutions n'ont pas aidé...

  • Invalider les caches/le redémarrage ne fonctionne pas.
  • De nettoyage et de Reconstruction du projet.

43voto

V.Y. Points 2502

Pour les versions Lollipop et supérieures, utilisez ceci:

 android:foreground="?android:attr/selectableItemBackground"
 

pour Pre-Lollipop utilisez ceci:

 android:foreground="?attr/selectableItemBackground"
 

9voto

HerberthObregon Points 658

2 options:

Option 1

Une autre raison possible est: Google repository maven n'est pas défini pour le script de construction.

Ouvert principal de votre projet de construction.gradle ajouter cette ligne:

buildscript {
    repositories {
        google()  <-- this
        // Be also sure that google() is before jcenter()
    }
}

Sans cela, il peut ne pas être en mesure de télécharger le Android Studio Gradle plugin 3.0+. Il n'est pas distribué dans jCenter mais dans le Google maven référentiel.

Option 2

Exécutez cette commande dans la racine du projet et de resynchronisation de projet

Linux:

rm .idea/libraries/Gradle__com_android_support_*.xml

Windows:

del .idea\libraries\Gradle__com_android_support_*.xml

4voto

Zakir Points 118

J'ai rencontré la même erreur après la mise à jour de Kotlin. Résolu avec "Invalidate caches / Restart"


MISE À JOUR Aujourd'hui, cette solution ne m'a pas aidé. Mais la solution à cette question a été la suivante: Android Studio 3.1 ne peut pas résoudre le symbole (thèmes, widget, attr, etc.)

3voto

tynn Points 17673

Les deux ressources sont définies avec la bibliothèque de support Android et, comme ces symboles ne peuvent pas être résolus, il semble qu'il vous manque la définition de la dépendance au support.

 dependencies {
    compile "com.android.support:appcompat-v7:$androidSupportVersion"
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X