如何找到问题Android SDK 3.0错误:(9,5)错误:资源android:找不到attr / colorError

时间:2017-11-02 17:55:04

标签: android android-layout android-studio

如何在创建make时发现此错误的问题我收到此错误消息: 错误:(9,5)错误:资源android:找不到attr / colorError

奇怪的是我有2个build.gradle文件: 这是我的build.gradle(Project:Projectname)文件:

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

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

这是我的build.gradle(模块:app)文件:

apply plugin: 'com.android.application'
android {
    compileSdkVersion 22
    defaultConfig {
        applicationId "org.acme.nfcedit"
        minSdkVersion 22
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

此文件出现/home/users/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/c41e5bc4d98504dc222d4eca88ab6d1b/res/values-v26/values-v26.xml内容

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Base.Theme.AppCompat" parent="Base.V26.Theme.AppCompat"/>
    <style name="Base.Theme.AppCompat.Light" parent="Base.V26.Theme.AppCompat.Light"/>
    <style name="Base.V26.Theme.AppCompat" parent="Base.V26.Theme.AppCompat">
        <!-- We can use the platform styles on API 26+ -->
        <item name="colorError">?android:attr/colorError</item>
    </style>
    <style name="Base.V26.Theme.AppCompat.Light" parent="Base.V23.Theme.AppCompat.Light">
        <!-- We can use the platform styles on API 26+ -->
        <item name="colorError">?android:attr/colorError</item>
    </style>
    <style name="Base.V26.Widget.AppCompat.Toolbar" parent="Base.V7.Widget.AppCompat.Toolbar">
        <item name="android:touchscreenBlocksFocus">true</item>
        <item name="android:keyboardNavigationCluster">true</item>
    </style>
    <style name="Base.Widget.AppCompat.Toolbar" parent="Base.V26.Widget.AppCompat.Toolbar"/>
</resources>

我不知道是什么模仿?android:attr/colorError

由于

3 个答案:

答案 0 :(得分:22)

名为“android:attr / colorError”的属性由API 26及更高版本的appcompat库引用。但构建版本正在使用sdk 22版进行编译。

因此,在app模块的build.gradle中,将compileSdkVersion增加到26,使其与您正在使用的appcompat库的版本一致。

换句话说,现在,你有:

compileSdkVersion 22
implementation 'com.android.support:appcompat-v7:26.1.0'

但是,这两个版本应该是一致的。那么,看看会发生什么:

compileSdkVersion 26
implementation 'com.android.support:appcompat-v7:26.1.0'

答案 1 :(得分:1)

compileSdkVersion 22更改为compileSdkVersion 26

答案 2 :(得分:0)

这里是RN> 0.60的更新。在您的android \ build.gradle内,将以下内容放入allprojects块中,以确保子项目具有更新的compileSdkVersion。

subprojects {
    afterEvaluate {
        project ->
            if (project.hasProperty("android")) {
                android {
                    compileSdkVersion = 28
                    buildToolsVersion = "28.0.3"
                }
            }
    }
}