当试图在我的项目中使用最新的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'.

我怎么解决这个问题?


当前回答

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

android {
    //...
    compileSdkVersion 21

    defaultConfig {
        targetSdkVersion 21
    }
    //...
}

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

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

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

请看reVerse的回答。他走得很彻底!

其他回答

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


Prerequirements

确保您已经通过SDK- manager下载了最新的额外功能以及Android 5.0 SDK。


Android工作室

打开构建。你的app-module的build.gradle.kts文件,并将compileSdkVersion更改为21。基本上没有必要将targetSdkVersion SDK-Version更改为21,但建议这样做,因为您应该始终以最新的android Build-Version为目标。 最后你的gradle-file会是这样的:

android {
    compileSdkVersion(21)
    // ...

    defaultConfig {
        // ...
        targetSdkVersion(21)
    }
}

之后一定要同步你的项目。


Eclipse

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

一旦项目被导入,你会发现/resfolder中的一些文件夹被红下划线标注,原因如下:

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'.

解决方案

你唯一要做的就是打开这个项目。“android-support-v7-appcompat”属性文件,将target从“target=android-19”修改为“target=android-21”。 然后做一个项目——>清洁…这样更改才会生效。


IntelliJ IDEA(不使用Gradle)

与Eclipse类似,仅使用android-support-v7- appcompatat .jar是不够的;您必须将appcompat作为模块导入。在这个StackO-Post上阅读更多信息(点击)。 (注意:如果你只使用。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平台—>应用

然后重建项目(Build—> rebuild project),你就可以开始了。

在Android Studio中,我试图设置compileSdkVersion和targetSdkVersion为19。

我的解决方案是在构建的底部进行替换。Gradle,从这里:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
}

旧版本的appcompat库:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
}

如果你不想使用API 21作为目标API,因此你不想使用材质主题,你必须使用属于API 19 >的旧版本

compile "com.android.support:appcompat-v7:19.0.+"

这也有助于解决你的问题,这只取决于你想要实现什么。

我在工作空间中添加了另一个项目,并试图在清单文件中引用它的一个活动,但我得到了这个错误。问题是我没有正确地引用库。下面是我解决问题的方法:

右键单击项目 选择属性 点击左边菜单上的Android 点击添加 请选择一个图书馆计划

jar进入Android Dependencies文件夹,这个错误已经修复。

我的建议是:(这对我来说是有效的,经过许多天的错误)

-确保你已经下载:

- the Lastest SDK Platform from the latest Android version
- Android Suppor Librarie and Repository from EXTRAS 

重新下载ADT

-制作项目的安全副本。

-你必须将ADT,工作区和项目导入到同一个磁盘(例如C:/)

Now delete the app compat and your project. In eclipse: File > Import > Android existing project > Next > Browse (The folder where you have your ADT)/sdk/extras/android/v7/appcompat > Import > Finish Now in the eclipse Package Explorer: android-support-v7-appcompat/libs/ Make on the two JARS: Right click > Build Path > Add to Build Path Right click on libs/ folder > Buil Path > Configure Build Path and check this two JARS > OK On the upper eclipse bar > Project > Clean Import your project > File > Import > Browse your project > Finish Now, Right click on the projectfile and android-support-v7-appcompat > Properties > Android > And select the latest API that appears > OK Right click on the projectfile > Properties > Android > Add > android-support-v7-appcompat On the upper eclipse bar > Project > Clean