开始一个新项目
设置最低SDK 4.0(API级别14)
选择空白活动选项
使用的活动名称和布局名称的默认名称为
点击完成
几秒钟后,Gradle完成了构建,并且在文件中出现以下消息时,我抛出了两个错误Teste4 \ app \ build \ intermediates / exploded-aar \ com.android.support \ appcompat-v7 \ 23.0.0 \ res \ values-v23 \ values-v23.xml:
错误:(2)检索项目的父项时出错:未找到与给定名称“ android:TextAppearance.Material.Widget.Button.Inverse”匹配的资源。
错误:(2)检索项目的父项时出错:未找到与给定名称'android:Widget.Material.Button.Colored'相匹配的资源。
在文件下->项目结构->模块:应用程序(左列)->属性标签,我设置了以下版本:
“编译SDK版本”:Android 5.1(API级别22)
“构建工具版本”:23.0.2
我应该怎么做才能解决此问题?
我已经尝试了栈溢出问题appcompat-v7:21.0.0'中的建议:没有找到与给定名称相匹配的资源:attr'android:actionModeShareDrawable',但没有用。
#1 楼
您的编译SDK版本必须与支持库的主要版本匹配。由于您正在使用支持库的版本23,因此需要针对Android SDK的版本23进行编译。
或者,您可以通过切换到最新的支持库v22继续针对Android SDK版本22进行编译。
#2 楼
发生这种情况是因为更新后,Android Studio默认情况下使用API版本23。以下对我有用:
按Ctrl + Shift + Alt + S进入项目结构页。转到“属性”选项卡,然后在构建工具区域中将23.0.0更改为22.0.1(或与之前使用的等效),然后重新构建项目。
如果这不起作用,请转到到gradle:app,然后
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
将v7:23.0.0修改为v7:22.2.1,并同步gradle。这肯定会工作。
评论
对于像我这样的新手,他们对于如何“转到gradele:app然后编译fileTree(dir:'libs',include:['* .jar'])感到困惑” compil'com.android.support:appcompat-v7:22.2 .1'“,在我的Android Studio(版本1.3.1)中,在项目窗格(通过单击最左侧的1:Project标签打开)中,我在Gradle脚本下看到两个名为“ build.gradle”的条目。第二个旁边有(Module:app)。我双击将其打开。然后在底部的“依赖项”部分中,将v7:23.0.0更改为v7:22.2.1。我保存了(并按照Studio的提示进行了同步)-似乎可以编译了。
–布莱恩(Bryan)
15年8月27日在18:57
如何进入MAC上的项目结构页面?
–rosu alin
2015年12月2日在10:28
@Sourav即使在完成这些更改后,错误也无法解决。我仍然在v23 / values-23.xml文件中有这些错误。我更改了项目结构页面中的值,重新构建了应用程序。但是仍然面临这个问题:(
–螃蟹
16年1月7日在13:03
在Mac上,快捷方式是⌘+; 。或者,您可以转到文件>项目结构。
– Tomanow
16/12/19在15:20
#3 楼
当您更新Android Studio时,默认情况下会使用API版本23,是其出现的主要原因。因此,
首先,在build.gradle(Module:app)中检查您的AppCompat版本。
即,
如果更改为23后发生错误,则只需从SDK Manager下载
Compile Sdk Version to API 23, and Build Tools Version to 23.0.0
。如果已下载,则:
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。平台并检查是否下载了Android 6.0。
如果未下载,请先下载。下载完成后,单击“应用”。
现在您需要从设置中将更改应用于项目。
然后按Ctrl + Alt + Shift + S打开设置
从列表中单击应用。
单击属性
将Compile SDK版本更改为API 23
将Build Tools版本更改为23.0。 0
别忘了重建您的项目。
然后您的错误就会消失。
评论
我了解您定义解决方案的方式,但是请尝试使用完整的描述来描述您的帖子
–纳粹艾哈迈德(Naveed Ahmad)
2015年9月3日在7:46
@NaveedAhmad好的,我要编辑我的帖子。感谢您的建议。
– Ravikant Paudel
2015年9月3日7:59
我添加了与上述问题有关的帖子stackoverflow.com/a/32370099/2915785
–纳粹艾哈迈德(Naveed Ahmad)
2015年9月3日在8:02
嘿,请添加相同的appcompat版本,它解决了我的问题
–vuhung3990
2015年9月4日在7:10
在这种情况下,屏幕截图有助于像我这样的傻瓜。
–ern0
16-9-7在20:47
#4 楼
如果您已尝试将目标更改为以前的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很有用。
#5 楼
我同意先前的回答。您的编译SDK版本必须与支持库匹配。这就是我所做的。您可以转到SDK Manager,然后在SDK Platform下安装具有API级别23的Android5.X。
在“项目结构”下,更改编译SDK版本为API 23,构建工具版本为23.0.0
,那么它应该可以毫无问题地构建。
#6 楼
您需要将compileSdkVersion设置为23。由于API 23 Android删除了已弃用的Apache Http程序包,因此,如果将它们用于服务器请求,则需要按以下说明将useLibrary'org.apache.http.legacy'
添加到build.gradle
链接:android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
...
//only if you use Apache packages
useLibrary 'org.apache.http.legacy'
}
#7 楼
之所以会出现此问题,是因为现在编译SDK版本必须与Android支持库的主要版本匹配。在我的情况下,我的
Android Support Library
版本为23,因此我不得不针对Android SDK version 23
进行编译,而我必须对此进行更改build.gradle
文件:有些人需要安装SDK,
Android 6.0 (API 23)
,不要忘了与gradle文件同步项目
#8 楼
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'
}
#9 楼
我找到了解决方案,当我更新sdk时问题就开始了,之后我使用了不同的buildToolsVersion('22 .0.1'),并且使用了不同的支持库,例如编译'com.android.support:appcompat-v7:23.0.0',在下面的图像中向您显示这引发了“ android.widget.Material ...”的问题。
然后我使用了相同版本的支持库编译'com.android.support:appcompat-v7:22.0.1'及其完成。 (在下面的屏幕截图中向您显示)
#10 楼
您应该使用最新版本编译项目,以便从SDK更新和安装。使用sync project with Gradle file
按钮同步您的项目。您也可以继续使用现有版本,但检查它是否已正确安装,如下图所示,表明API 22已正确安装。
并根据需要同步您的项目。
可能会有所帮助。
#11 楼
如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版本的最新版本。
#12 楼
您的编译SDK版本必须与支持库主版本匹配。这是解决您的问题的方法。您可以在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中对其进行检查,如下所示:
#13 楼
就我而言,它是Google Play服务的更高版本。我将它们设置为7.0.0(不是8.x),一切正常。#14 楼
我想从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'
}
#15 楼
这就是帮助我的事情:添加特定的android平台应该做的是...我的情况是
cordova
,但对于ionic
,phonegap
和其他类似的框架也是如此:列出为您的项目安装的所有平台:
cordova platform list
。您将看到类似这样的内容:删除android平台:
cordova platform remove android
。然后添加特定的android平台:
cordova platform add android@5.0.0
。祝你好运! :)
#16 楼
我遇到了同样的问题。我通过将每个子模块的gradle.build更新为最新的编译器版本来解决我的问题。#17 楼
一切都很好,但是没有人解释在哪里下载SDK生成工具#18 楼
另一个解决方案:导航到
\sdk\extras\android\m2repository\com\android\support\appcompat-v7.x.x
用7-zip或winrar打开
.aar
文件,在res文件夹中删除values-23
文件夹并保存更改。#19 楼
在模块上:app(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);
}
}
#20 楼
确保所有这些都是最新的。
#21 楼
升级Android Studio。我在Android Studio 1.3.1中遇到了这个问题,其他答案对我都不起作用,但是更新到1.5.1之后就没有问题。
#22 楼
如果您正在使用phonegap(跨平台)并且在上面遇到了同样的问题,只需使用以下命令删除android平台即可。
phonegap平台请删除android
并再次添加。
phonegap平台添加android
然后为我解决了问题。
#23 楼
正如其他人已经提到的那样,您的compile sdk version
必须与您的support library's
主版本匹配。但是,这与subprojects
也相关。如果有的话,可以使用以下脚本设置
subprojects
编译sdk版本:subprojects { subproject ->
afterEvaluate{
if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
}
}
}
}
将此脚本添加到您的根
build.gradle
文件中。#24 楼
如果即使下载最新的SDK和Android Studio后仍然遇到错误,请按照以下步骤操作:下载最新的SDK
打开文件-项目结构(Ctrl + Alt + Shift + S)
在模块中,选择应用程序
在属性选项卡中:将编译SDK版本更改为API 23 Android 6.0棉花糖(最新)
我希望它对某人有帮助这样他就不会再遭受这几天的痛苦了。
评论
您可以在build.gradle中手动更改它,也可以通过打开项目属性并转到“依赖项”选项卡来使用GUI。
–布莱恩·赫伯斯特(Bryan Herbst)
15年8月18日在14:52
这个问题和答案与您的应用将在哪个版本上运行无关。面向22的应用程序可以在运行23的设备上正常运行。这里描述的问题是,支持库版本23要求您以23为目标,因为支持库引用了23 SDK中的某些API。
–布莱恩·赫伯斯特(Bryan Herbst)
15年8月22日在21:13
对于像我这样刚接触Android Studio并对于如何“通过打开项目属性使用GUI”感到困惑的人,在我的Android Studio(v1.3.1)中,转到“文件”,“项目结构”,然后在左侧底部的手动窗格是“模块”(在我的情况下称为“ app”)下的条目。我单击它,然后看到“依赖关系”选项卡。
–布莱恩(Bryan)
15年8月27日在18:43
我仍然不敢相信Android Studio甚至在没有测试基本功能的情况下就发布东西!至少发出一些有意义的警告!!
–乔什
2015年8月31日在11:11
GUI应该会弹出一条消息“我们检测到您没有针对正确的Android API版本。要我修复它吗?”。相反,我必须停止在飞机上工作,等到可以搜索stackoverflow。
–某处有人
2015年9月2日在22:31