检索项目的父项时出错:升级到AppCompat v23后,找不到与给定名称匹配的资源

我一直使用Eclipse编程Android,并决定开始迁移到Android Studio 。 我决定使用我已经用于Eclipse的SDK,然后:

  • 开始一个新项目
  • 设置最低SDK 4.0(API等级14)
  • select空白活动选项
  • 使用活动名称和布局名称的默认名称
  • 点击完成

几秒钟后,Gradle完成构build,并且在文件Teste4 \ app \ build \ intermediates / exploded-aar \ com.android.support \ appcompat-v7 \ 23.0.0 \ res \ values中引发了两个错误-v23 \价值观v23.xml:

错误:(2)检索项目的父项时出错:未find与给定名称“android:TextAppearance.Material.Widget.Button.Inverse”匹配的资源。

错误:(2)检索项的父项时出错:找不到与给定名称“android:Widget.Material.Button.Colored”匹配的资源。

文件 – >项目结构 – >模块:应用程序(左栏​​) – >属性选项卡下 ,我有以下版本设置:

  • “编译Sdk版本”:Android 5.1(API等级22)
  • “构build工具版本”:23.0.2

我应该怎么做才能解决这个问题?

我已经尝试了什么build议堆栈溢出问题appcompat-v7:21.0.0':找不到资源匹配给定的名称:attr'android:actionModeShareDrawable' ,但它没有工作。

您的编译SDK版本必须与支持库的主要版本相匹配。

由于您使用的是支持库的版本23,因此需要针对Android SDK的版本23进行编译。

或者,您可以通过切换到最新的支持库v22继续编译Android SDK的版本22。

发生这种情况是因为更新后Android Studio默认使用API版本23

以下为我工作:

Ctrl + Shift + Alt + S进入项目结构页面。 转到“属性”选项卡,并在构build工具区域中将 23.0.0更改为22.0.1 (或等同于以前使用的内容),然后重新构build项目。

如果这不起作用,去gradle:应用程序 ,然后

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

如上所示编辑v7:23.0.0v7: 22.2.1并同步gradle。 这一定会工作。

当您更新Android Studio时,默认情况下会使用API​​版本23,这是其发生的主要原因。 所以,

首先,在build.gradle(Module:app)中检查你的AppCompat版本。也就是说,

在这里输入图像说明

如果更改为23后出现错误,则只需下载

Compile Sdk Version to API 23, and Build Tools Version to 23.0.0

从SDKpipe理器。 如果已经下载,则:

 1. Go to SDK Manager and 2. Under Project Structure, change *Compile SDK Version* to API 23, and *Build Tools Version* to 23.0.0 

点击SDKpipe理器button并打开对话框。

在这里输入图像说明

点击SDK平台,检查是否下载了Android 6.0。

如果没有,那么首先下载。 完成下载后,单击应用

在这里输入图像说明

现在您需要从设置中将更改应用到您的项目。 然后按Ctrl + Alt + Shift + S打开设置

  1. 点击列表中的应用
  2. 点击属性
  3. 将您的编译SDK版本更改为API 23
  4. 将您的构build工具版本更改为23.0.0

在这里输入图像说明

不要忘记重build你的项目。

那么你的错误将会消失。

如果您尝试将目标更改为以前的GooglePlayServices或AppCompatv7版本,并且无法正常工作,请检查是否有任何项目库依赖项,该项目将针对这些库中的任何一个的最新版本。 Google Maps Utils Library项目发生在我身上:

更换:

 compile 'com.google.android.gms:play-services:+' 

 compile 'com.google.android.gms:play-services:8.3.0' 

然后,您可以继续完整定位API 22

如果还没有编译,有时将compileSdkVersion API设置为23,targetSdkVersion设置为22。

我同意以前的答案。 您的编译SDK版本必须与支持库匹配。 这是我做的。

  1. 您可以前往SDKpipe理器并在SDK平台下安装API 5.级别的Android 5.X。
  2. 在“项目结构”下,将编译SDK版本更改为API 23,将“生成工具版本”更改为23.0.0

那么它应该build立没有问题。

你需要将compileSdkVersion设置为23。

由于API 23 Android删除了弃用的Apache Http包,因此如果您将它们用于服务器请求,则需要将useLibrary'org.apache.http.legacy 'org.apache.http.legacy'添加到build.gradle如以下链接所述:

 android { compileSdkVersion 23 buildToolsVersion "23.0.0" ... //only if you use Apache packages useLibrary 'org.apache.http.legacy' } 

由于现在编译SDK版本必须与Android支持库的主要版本匹配,所以引发了这个问题。

在我的情况下,我有Android Support Library版本23,所以我不得不编译对Android SDK version 23 ,我不得不改变这在我的build.gradle文件:

在这里输入图像描述

那么你们有些人需要安装SDK, Android 6.0 (API 23)

在这里输入图像描述

并且不要忘记将项目与Gradle文件同步

 android { compileSdkVersion 23 buildToolsVersion '23.0.1' defaultConfig { applicationId "" minSdkVersion 14 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.google.code.gson:gson:2.3.1' compile 'com.android.support:recyclerview-v7:23.0.0' compile 'com.android.support:appcompat-v7:23.0.1' } 

我find了解决scheme,问题开始,当我更新SDK,之后,我用不同的buildToolsVersion('22 .0.1') ,我使用了不同的支持库,如编译'com.android.support:appcompat-v7:23.0.0' ,在下面的图片中显示你

在这里输入图像描述

这引起了“ android.widget.Material …”的问题。然后,我使用了相同版本的支持库,如编译“com.android.support:appcompat-v7:22.0.1”及其完成。 (显示你在下面的截图)

在这里输入图像描述

正如Tanis.7x指出的那样,支持库版本(23)与targetSdkVersion(22)不匹配,

您可以通过执行以下操作来解决此问题:

在您的应用程序模块的build.grade文件中,更改以下代码行

 compile 'com.android.support:appcompat-v7:23.0.0' 

 compile 'com.android.support:appcompat-v7:22.+' 

这将使用与SdkVersion 22兼容的最新版本的appcompat版本。

您应该使用最新版本编译您的项目,以便从您的SDK更新和安装。 同步您的项目与sync project with Gradle filebutton。
您也可以继续使用现有的版本,但是请检查它是否正确安装在API 22下面。 在这里输入图像描述

并根据需要同步您的项目。

在这里输入图像描述

它可能会有帮助。

就我而言,这是Google-play-services的更高版本。 我把它们设置为7.0.0(不是8.x),一切正常。

您的编译SDK版本必须与支持库主版本匹配。 这是你的问题的解决scheme。 您可以在build.gradle文件中的Gradle脚本中轻松检查它。 Fx:如果你的compileSdkVersion是23,你的编译库必须从23开始。

  compileSdkVersion 23 buildToolsVersion "23.0.0" defaultConfig { minSdkVersion 15 targetSdkVersion 23 versionCode 340 versionName "3.4.0" } dependencies { compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:recyclerview-v7:23.0.1' } 

并始终检查您的Android Studoi是否具有支持的API级别。 你可以在你的Android SDK中检查它,如下所示: 在这里输入图像描述

这是帮助我: 添加特定的Android平台

应该做的是以下…在我的情况是cordova但同样是ionicphonegap和这样的其他框架相关:

  1. 列出为您的项目安装的所有平台: cordova platform list 。 你会看到这样的东西:

在这里输入图像描述

  1. 删除android平台: cordova platform remove android

  2. 然后添加特定的android平台: cordova platform add android@5.0.0

祝你好运! 🙂

我也遇到了同样的问题 我通过更新每个子模块的gradle.build到最新的编译器版本来解决我的问题。

我想从API 23降级到22,并得到这个错误。 我必须更改项目中的所有 build.gradle文件才能编译。

 android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.yourapp.app" minSdkVersion 14 targetSdkVersion 22 } ... dependencies { compile 'com.android.support:appcompat-v7:22.2.1' compile 'com.android.support:support-v4:22.2.1' compile 'com.android.support:design:22.2.1' compile 'com.google.android.gms:play-services-gcm:10.0.1' } 

另一个解决scheme:导航到

 \sdk\extras\android\m2repository\com\android\support\appcompat-v7\23.xx 

使用7-zip或winrar打开.aar文件,在res文件夹中删除values-23文件夹并保存更改。

在模块上:应用程序(Gradle)

 apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.namepack.nameappxxxxx" minSdkVersion 16 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' } 

项目:nameAppXXXX(Gradle)

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.3' } } allprojects { repositories { jcenter() } } 

并编辑您的活动AppCompatActivity为例如活动:

 package com.namepack.nameappxxxxx; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.Menu; import android.view.MenuItem; public class NameClass extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); } } 

SDK管理器

确保所有这些都是最新的。

升级Android Studio。

我有Android Studio 1.3.1这个问题,没有其他答案为我工作,但更新到1.5.1之后没有问题。

如果你正在使用phonegap(跨平台),并得到同样的问题上面,只需删除android平台使用下面的命令。

phonegap平台删除android

并再次添加。

phonegap平台添加android

然后问题解决了我。

如果您在下载最新的SDK和Android Studio后仍然收到错误信息,请按以下步骤操作:

  1. 下载最新的SDK
  2. 打开文件 – 项目结构( Ctrl + Alt + Shift + S
  3. 在模块中,select应用程序
  4. 在属性选项卡中:将编译SDK版本更改为API 23 Android 6.0棉花糖(最新版)

我希望这能帮助别人,这样他就不会像我这两天那样受苦了。