我一直用Eclipse编程Android,并决定开始迁移到AndroidStudio。我决定使用与Eclipse相同的SDK,然后:

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

几秒钟后,Gradle完成了构建,并在文件Teste4\app\build\intermediates/deblodded 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”匹配的资源。

在文件->项目结构->模块:app(左列)->财产选项卡下,我设置了以下版本:

“编译Sdk版本”:Android 5.1(API级别22)“生成工具版本”:23.0.2

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

我已经尝试了堆栈溢出问题appcompat-v7:21.0.0中的建议:没有找到与给定名称匹配的资源:attr“android:actionModeShareDrawable”,但它不起作用。


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

由于您使用的是支持库的版本23,因此需要根据AndroidSDK的版本23进行编译。

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


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

您可以转到SDK管理器,在SDK平台下安装API级别为23的Android5.X。在项目结构下,将编译SDK版本更改为API 23,将生成工具版本更改为23.0.0

那么它应该毫无问题地构建。


这是因为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,并同步渐变。这肯定会奏效的。


如果您在下载最新的SDK和Android Studio后仍出现错误,请看我的操作:

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

我希望这对某人有所帮助,这样他就不会像我这几天那样受苦了。


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

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

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

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

To

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

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


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

首先,在build.gradle(模块:app)中检查AppCompat版本即,

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

将Sdk版本编译为API 23,将Build Tools版本编译为23.0.0

来自SDK管理器。如果已下载,则:

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管理器按钮并打开对话框。

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

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

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

从列表中单击应用程序。单击财产将编译SDK版本更改为API 23将生成工具版本更改为23.0.0

别忘了重建项目。

然后你的错误就会消失。


我找到了解决方案,当我更新sdk时,问题就开始了,之后我使用了不同的buildToolsVersion('22.0.1'),我使用的是不同的支持库,如compile“com.android.support:appcompat-v7:23.0.0”,如下图所示

这引发了“android.widget.Material…”的问题然后我使用了相同版本的支持库,如compile“com.android.support:appcompat-v7:22.0.1”及其DONE。(在下面的屏幕截图中显示)


您应该使用最新版本编译项目,以便从SDK更新和安装。使用Gradle文件按钮将项目与同步项目同步。您也可以继续使用现有版本,但请检查其是否正确安装。如下图所示,请向正确安装的API 22指示。

如果需要,同步您的项目。

这可能会有所帮助。


另一种解决方案:导航到

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

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


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

模块上: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);
    }


}

之所以出现此问题,是因为现在编译SDK版本必须与Android支持库的主要版本相匹配。

在我的例子中,我有Android支持库版本23,所以我必须根据Android SDK版本23进行编译,并且我必须在build.gradle文件中对此进行更改:

你们中的一些人需要安装SDK,Android 6.0(API 23)

不要忘记将项目与渐变文件同步


您需要将compileSdkVersion设置为23。

由于API 23 Android删除了已弃用的Apache Http包,因此如果您将其用于服务器请求,则需要将useLibrary“org.Apache.Http.legage”添加到build.gradle,如下链接所示:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    ...

    //only if you use Apache packages
    useLibrary 'org.apache.http.legacy'
}

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


如果您尝试将目标更改为以前的GooglePlayServices或AppCompatv7版本,但它不起作用,请检查您是否有任何项目库依赖关系,此项目将以这些库的最新版本为目标。我在Google Maps Utils Library项目中遇到了这种情况:

替换:

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

to

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

然后您可以继续完整的目标API 22

如果它仍然无法编译,有时将compileSdkVersion API设置为23,将targetSdkVersion设置为22会很有用。


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


升级Android Studio。

我在Android Studio 1.3.1中遇到了这个问题,其他答案都不适合我,但在更新到1.5.1之后没有任何问题。


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

应该做的是:。。。在我的案例中,它是cordova,但同样适用于ionic、phonegap和其他类似框架:

列出为项目安装的所有平台:cordova平台列表。你会看到这样的情况:

移除android平台:cordova平台移除android。然后添加特定的android平台:cordova平台添加android@5.0.0.

祝你好运!:)


在我看来,这是谷歌游戏服务的一个更高版本。我将它们设置为7.0.0(而不是8.x),一切正常。


我想从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'
}

如果您正在使用phonegap(跨平台),并且遇到了上述问题,只需使用下面的命令删除android平台。

phonegap平台删除android

然后再添加一次。

phonegap平台添加android

然后问题就解决了。


您的编译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中进行检查,如下所示:


一切都很好,但没有人解释如何下载SDK构建工具


正如其他人已经提到的,您的编译sdk版本必须与支持库的主要版本相匹配。然而,如果您有子项目,这也与子项目相关。

如果需要,可以使用以下脚本设置子项目编译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文件中。