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文件中的资源引用。

任何指针都很棒! 谢谢!它似乎与此线程有关,但未提供解决方案:

Jun711 asked 2019-11-19T00:25:48Z
9个解决方案
143 votes

我认为这是IDE和Android Gradle插件的通信问题。 无论如何,我可靠地找到的唯一解决此问题的方法是删除appcompat-v7文件夹中有问题的库。

因此,对您来说,由于皮棉支票无法识别appcompat-v7

  1. 找到appcompat-v7文件
  2. 删除那些文件
  3. SYNC IDE与文件系统
  4. 带有Gradle文件的SYNC项目
  5. 重建您的项目

您可以通过单击工具栏顶部的“文件”并选择“与文件系统同步”,然后选择“与gradle文件同步项目”来进行同步。

我尝试了其他建议的解决方案-在模块build.gradle文件中具有appcompat-v7依赖性,在项目build.gradle依赖性中具有google()存储库作为第一行。 娜达

这些解决方案也没有帮助...

  • 使缓存无效/重新启动无效。
  • 清洁/重建项目。
wooldridgetm answered 2019-11-19T00:27:28Z
44 votes

对于Pre-Lollipop及更高版本,请使用以下命令:

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

for Pre-Lollipop使用此:

android:foreground="?attr/selectableItemBackground"
V.Y. answered 2019-11-19T00:27:58Z
9 votes

2种选择:

选项1

另一个可能的原因是:Google的Maven存储库未设置为   构建脚本。

打开项目的主build.gradle添加以下行:

del .idea\libraries\Gradle__com_android_support_*.xml

否则,它可能无法下载Android Studio Gradle   插件3.0及更高版本。 它不在jCenter中分发,而是在Google专家中分发   资料库。

选项2

在项目的根目录中运行此命令并重新同步项目

Linux的:

del .idea\libraries\Gradle__com_android_support_*.xml

视窗:

del .idea\libraries\Gradle__com_android_support_*.xml

HerberthObregon answered 2019-11-19T00:29:04Z
4 votes

更新Kotlin之后,我遇到了同样的错误。 解决“使缓存无效/重新启动”


更新今天,这种解决方案对我没有帮助。 但是这个问题的解决方案确实是:Android Studio 3.1无法解析符号(主题,小部件,属性等)。

Zakir answered 2019-11-19T00:29:35Z
3 votes

两种资源都是使用Android支持库定义的,并且由于无法解析这些符号,因此似乎缺少定义支持依赖项的机会。

dependencies {
    compile "com.android.support:appcompat-v7:$androidSupportVersion"
}
tynn answered 2019-11-19T00:30:00Z
0 votes

就我而言,请帮助在buildscripts.repositories和allprojects.repositories中的build.gradle Project中添加maven。 看起来像这样:

google()
maven { url 'https://maven.google.com' }
jcenter()
Serjant.arbuz answered 2019-11-19T00:30:24Z
0 votes

我解决了

  • 在项目资源管理器中删除.idea文件夹。
  • 无效的缓存/重启
  • 刷新项目摇篮
Nazeer Ahamed answered 2019-11-19T00:31:07Z
0 votes

这是解决我的问题:

  1. 关闭Android Studio
  2. 删除根项目目录中的.idea目录

enter image description here

  1. 重新导入项目

enter image description here

DragonT answered 2019-11-19T00:31:50Z
0 votes

我将gradle版本更新为4.10.1,并修复并重新导入对其进行了修复。 .idea之前没有库文件夹。

ozge s answered 2019-11-19T00:32:14Z
translate from https://stackoverflow.com:/questions/44007653/android-cannot-resolve-symbol-attr-selectableitembackground