小编典典

appcompat-v7:21.0.0':找不到与给定名称匹配的资源:attr 'android:actionModeShareDrawable'

all

尝试在我的项目中使用最新的 appcompat-v7 支持库时,出现以下错误:

/Users/greg/dev/mobile/android_project/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0/res/values-v11/values.xml
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.

我该如何解决?


阅读 124

收藏
2022-03-25

共1个答案

小编典典

虽然答案是绝对正确的,但我只想详细说明它并为所有 IDE (Eclipse、IntellJ 和 Android Studio)提供解决方案,即使错误略有不同。

这可能是因为您没有compileSdkVersion在 build.gradle 文件中将您的设置为 21。您可能还想将您的更改targetSdkVersion为 21。

android {
    //...
    compileSdkVersion 21

    defaultConfig {
        targetSdkVersion 21
    }
    //...
}

这要求您首先下载最新的 SDK 更新。

Android Studio SDK 管理器

一旦你下载了所有更新(别忘了也更新 Android 支持库/存储库!)并更新你的 compileSdkVersion,重新同步你的 Gradle 项目。

编辑:对于 Eclipse 或一般 IntelliJ 用户

请参阅反向的答案。他走得很彻底!


先决条件

确保您已通过 SDK-Manager 下载了最新extras版本Android 5.0 SDK

SDK 管理器的图片


安卓工作室

打开build.gradle你的 app-module 文件并将你的更改compileSdkVersion
21。基本上没有必要将targetSdkVersionSDK-Version 更改为 21,但建议您始终以最新的 android Build-Version 为目标。
最后,您的 gradle-file 将如下所示:

android {
    compileSdkVersion 21
    // ...

    defaultConfig {
        // ...
        targetSdkVersion 21
    }
}

确保之后同步您的项目。

Android Studio Gradle 同步提醒


在 Eclipse 中使用v7-appcompat时,您必须将其用作库项目。/libs仅将 *.jar 复制到您的文件夹是不够的。请阅读
developer.android.com上的 此(单击)分步教程,以了解如何正确导入项目。 __

项目一导入,你会发现文件夹中的一些文件/res夹是红色下划线的,因为如下错误:

Eclipse 中的错误

error: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material'.
error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.*'
error: Error: No resource found that matches the given name: attr 'android:actionModeShareDrawable'.

解决方案

您唯一需要做的就是打开 的project.properties文件android-support-v7-appcompat并将目标从
更改target=android-19target=android-21
之后只需执行 aProject --> Clean...以使更改生效。


IntelliJ IDEA(不使用 Gradle)

android-support-v7-appcompat.jar与 Eclipse
类似,仅使用;是不够的。您必须将其appcompat作为模块导入。
注意: _如果你只使用.jar你会NoClassDefFoundErrors在运行时_得到)

当您尝试构建项目时,您将在res/values-v**文件夹中遇到问题。您的消息窗口将显示如下内容:

Error:android-apt-compiler: [appcompat]  resource found that matches the given name: attr 'android:colorPrimary'.
Error:(75, -1) android-apt-compiler: [appcompat] C:\[Your Path]\sdk\extras\android\support\v7\appcompat\res\values-v21\styles_base.xml:75: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ActionButton'.
// and so on

解决方案

右键单击appcompat模块 –> 打开模块设置 (F4) –> [依赖项选项卡] 从下拉列表中选择 Android API 21 平台
–> 应用

选择 API 21 平台

然后只需重建项目(Build –> Rebuild Project)就可以了。

2022-03-25