Error retrieving parent for item: No resource found that matches the given name after upgrading to AppCompat v23
我一直用Eclipse编程Android,并决定开始迁移到Android Studio。我决定使用我已经用于Eclipse的相同SDK,然后:
- 开始了一个新项目
- 设置最低SDK 4.0(API级别14)
- 选择空白活动选项
- 已使用活动名称和布局名称的默认名称
- 命中完成
几秒钟后,Gradle完成构建,并在文件Teste4 app build intermediates / explosion-aar com.android.support appcompat-v7 23.0.0 res values中抛出以下消息,从而引发了两个错误-v23 价值观v23.xml:
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.
在文件 - >项目结构 - >模块:应用程序(左列) - >属性选项卡下,我设置了以下版本:
- "编译Sdk版本":Android 5.1(API级别22)
- "构建工具版本":23.0.2
我该怎么做才能解决这个问题?
我已经尝试过Stack Overflow问题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进入项目结构页面。转到属性选项卡,在构建工具区域中将23.0.0更改为22.0.1(或等同于之前使用的内容)并重建项目。
如果这不起作用,请转到gradle:app然后
1 2 | compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.2.1' |
如上所示编辑v7:23.0.0到v7:22.2.1并同步gradle。这肯定会奏效。
当您更新Android Studio时,它默认使用API??版本23,
这是其发生的主要原因。所以,
首先,检查build.gradle中的AppCompat版本(模块:app)
那是,
如果在更改为23之后出现错误,则只需下载
来自SDK Manager。如果已下载,则:
1 2 | 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 |
单击SDK Manager按钮并打开对话框。
单击SDK Platform并检查是否已下载Android 6.0。
如果没有,那么先下载。完成下载后,单击Apply。
现在,您需要从设置中对项目应用更改。
然后按Ctrl + Alt + Shift + S打开设置
不要忘记重建您的项目。
然后你的错误就会消失。
如果您尝试将目标更改为以前的GooglePlayServices或AppCompatv7版本并且它不起作用,请检查您是否有任何项目库依赖项,此项目将针对任何这些库的最新版本。 Google Maps Utils Library项目发生在我身上:
更换:
1 | compile 'com.google.android.gms:play-services:+' |
至
1 | compile 'com.google.android.gms:play-services:8.3.0' |
然后,您可以继续完全定位API 22
如果它仍然没有编译,有时将compileSdkVersion API设置为23并将targetSdkVersion设置为22是有用的。
我同意之前的回答。您的编译SDK版本必须与支持库匹配。这就是我做的。
那么它应该没有问题。
您需要将compileSdkVersion设置为23。
由于API 23 Android删除了已弃用的Apache Http软件包,因此如果您将它们用于服务器请求,则需要将useLibrary
1 2 3 4 5 6 7 8 | android { compileSdkVersion 23 buildToolsVersion"23.0.0" ... //only if you use Apache packages useLibrary 'org.apache.http.legacy' } |
提出此问题是因为现在编译SDK版本必须与Android支持库的主要版本匹配。
在我的情况下,我有
好吧,你们中的一些人需要安装SDK,
并且不要忘记使用gradle文件同步项目
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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' } |
我找到了解决方案,问题在我更新sdk后开始,之后我使用了不同的buildToolsVersion('22 .0.1'),我使用了不同的支持库,比如编译'com.android.support:appcompat-v7:23.0.0',在下面的图片中显示你
这引起了"android.widget.Material ......"的问题。
然后我使用相同版本的支持库,如编译'com.android.support:appcompat-v7:22.0.1'及其DONE。 (在下面的屏幕截图中显示)
您应该使用最新版本编译项目,以便更新&从SDK安装。使用
您还可以继续使用现有版本,但检查它是否正确安装在图像下方,表示已正确安装的API 22。
并根据需要同步您的项目。
它可能有所帮助。
正如Tanis.7x所指出的,支持库版本(23)与targetSdkVersion(22)不匹配
您可以通过执行以下操作来解决此问题:
在应用程序模块的
1 | compile 'com.android.support:appcompat-v7:23.0.0' |
至
1 | compile 'com.android.support:appcompat-v7:22.+' |
这将使用与SdkVersion 22兼容的最新版appcompat版本。
您的编译SDK版本必须与支持库主要版本匹配。这是您的问题的解决方案。您可以在
Fx:如果你的
1 2 3 4 5 6 7 8 9 10 11 12 | 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中查看它,如下所示:
就我而言,它是更高版本的Google播放服务。我将它们设置为7.0.0(而不是8.x),一切正常。
我想从API 23降级到22并得到此错误。我必须更改项目中的所有
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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' } |
这对我有所帮助:添加特定的android平台
应该做的是以下......在我的情况下,它是
删除android平台:
然后添加特定的android平台:
祝好运! :)
我遇到了同样的问题。我通过将每个子模块的gradle.build更新为最新的编译器版本来解决我的问题。
一切都很棒,但没有人解释在哪里下载SDK构建工具
升级Android Studio。
我有Android Studio 1.3.1的这个问题,其他答案都没有对我有用,但在更新到1.5.1之后没有任何问题。
在模块:app(Gradle)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.3' } } allprojects { repositories { jcenter() } } |
并将您的AppCompatActivity活动编辑为例如Activity:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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); } } |
确保所有这些都是最新的。
如果您使用的是phonegap(跨平台)并且上面遇到同样的问题,
只需使用以下命令删除android平台。
phonegap平台删除android
然后再添加一次。
phonegap平台添加android
然后问题解决了我。
另一种方案:
导航
1 | \sdk\extras\android\m2repository\com\android\support\appcompat-v7\23.x.x |
用7-zip或winrar打开
正如其他人已经提到的那样,
如果您这样做,您可以使用以下脚本设置
1 2 3 4 5 6 7 8 9 10 | subprojects { subproject -> afterEvaluate{ if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) { android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion } } } } |
在root
如果您在下载最新的SDK和Android Studio后出现错误,请执行以下操作:
我希望它可以帮助某些人,这样他就不会像我这样做几天那样受苦。