我一直用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”,但它不起作用。


当前回答

正如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版本的最新版本。

其他回答

模块上: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时,问题就开始了,之后我使用了不同的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\extras\android\m2repository\com\android\support\appcompat-v7\23.x.x

使用7-zip或winrar打开.aar文件,在res文件夹中删除values-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'
}
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'
}