Reputation: 3044
<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>
I got this error message
Cannot resolve symbol ?attr/selectableItemBackground
Validates resource references inside Android XML files.
<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"/>
And, I got a similar error for the above as well
Cannot resolve symbol '@style/TextAppearance.AppCompat.Headline'
Validates resource references inside Android XML files.
Any pointer would be great! Thank you! It seems to be related to this thread but no solution was provided:
Upvotes: 55
Views: 20356
Reputation: 66
If you use applicationContext
for LayoutInflater
, then replace it to normal context
. It works for me.
Upvotes: 0
Reputation: 11
I updated my gradle version to 4.10.1 and fix and reimport repaired it. There were no libraries folder under .idea before.
Upvotes: 0
Reputation: 2111
2 options:
Another possible reason is: Google's maven repository is not set for the build script.
Open your project's main build.gradle add this line:
buildscript { repositories { google() <-- this // Be also sure that google() is before jcenter() } }
Without this, it may not be able to download the Android Studio Gradle plugin 3.0+. It's not distributed in jCenter but in the Google's maven repository.
Run this command in root of project and resync project
rm .idea/libraries/Gradle__com_android_support_*.xml
del .idea\libraries\Gradle__com_android_support_*.xml
Upvotes: 9
Reputation: 424
I faced with same error after updating Kotlin. Solved with "Invalidate caches/Restart"
UPDATE Today this solution did not helped me. But the solution of this question did: Android Studio 3.1 Cannot Resolve Symbol (Themes, Widget, attr, etc.)
Upvotes: 4
Reputation: 511
This is what solved to me:
Upvotes: 0
Reputation: 11
I have solved by,
Upvotes: 1
Reputation: 3682
For version Lollipop
and higher use this:
android:foreground="?android:attr/selectableItemBackground"
for Pre-Lollipop
use this:
android:foreground="?attr/selectableItemBackground"
Upvotes: 44
Reputation: 2520
I believe this is a communication problem with the IDE and Android Gradle Plugin. In any case, the only way I've reliably found to resolve this is to delete the problematic libs in the .idea/libraries/
folder.
So, for you, since the lint checks aren't recognizing ?attr/selectableItemBackground
Gradle__com_android_support_xxx.xml
filesI've tried other suggested solutions - had the appcompat-v7
dependency in my module build.gradle file & the google()
repository as the first line in the project build.gradle dependencies. Nada.
These solutions also haven't helped...
Upvotes: 143
Reputation: 1234
In my case help adding maven to build.gradle Project in buildscripts.repositories AND allprojects.repositories. It looks like this:
google()
maven { url 'https://maven.google.com' }
jcenter()
Upvotes: 0
Reputation: 39843
Both resources are defined with the Android Support Library and since these symbols cannot be resolved, it seems like you're missing to define the support dependency.
dependencies {
compile "com.android.support:appcompat-v7:$androidSupportVersion"
}
Upvotes: 3