尝试在我的项目中使用最新的 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'.
我该如何解决?
虽然答案是绝对正确的,但我只想详细说明它并为所有 IDE (Eclipse、IntellJ 和 Android Studio)提供解决方案,即使错误略有不同。
这可能是因为您没有compileSdkVersion在 build.gradle 文件中将您的设置为 21。您可能还想将您的更改targetSdkVersion为 21。
compileSdkVersion
targetSdkVersion
android { //... compileSdkVersion 21 defaultConfig { targetSdkVersion 21 } //... }
这要求您首先下载最新的 SDK 更新。
一旦你下载了所有更新(别忘了也更新 Android 支持库/存储库!)并更新你的 compileSdkVersion,重新同步你的 Gradle 项目。
编辑:对于 Eclipse 或一般 IntelliJ 用户
请参阅反向的答案。他走得很彻底!
确保您已通过 SDK-Manager 下载了最新extras版本Android 5.0 SDK。
extras
Android 5.0 SDK
打开build.gradle你的 app-module 文件并将你的更改compileSdkVersion为 21。基本上没有必要将targetSdkVersionSDK-Version 更改为 21,但建议您始终以最新的 android Build-Version 为目标。 最后,您的 gradle-file 将如下所示:
build.gradle
android { compileSdkVersion 21 // ... defaultConfig { // ... targetSdkVersion 21 } }
确保之后同步您的项目。
在 Eclipse 中使用v7-appcompat时,您必须将其用作库项目。/libs仅将 *.jar 复制到您的文件夹是不够的。请阅读 developer.android.com上的 此(单击)分步教程,以了解如何正确导入项目。 __
v7-appcompat
/libs
项目一导入,你会发现文件夹中的一些文件/res夹是红色下划线的,因为如下错误:
/res
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-19为target=android-21。 之后只需执行 aProject --> Clean...以使更改生效。
project.properties
android-support-v7-appcompat
target=android-19
target=android-21
Project --> Clean...
android-support-v7-appcompat.jar与 Eclipse 类似,仅使用;是不够的。您必须将其appcompat作为模块导入。 ( 注意: _如果你只使用.jar你会NoClassDefFoundErrors在运行时_得到)
android-support-v7-appcompat.jar
appcompat
.jar
NoClassDefFoundErrors
当您尝试构建项目时,您将在res/values-v**文件夹中遇到问题。您的消息窗口将显示如下内容:
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)就可以了。