【问题标题】:attr/colorError not found error when using com.android.support:recyclerview-v7:26.0.0-beta2使用 com.android.support:recyclerview-v7:26.0.0-beta2 时 attr/colorError not found 错误
【发布时间】:2017-11-22 11:01:57
【问题描述】:

我使用的是 Android Studio 3.0 Canary 4。我导入了回收站视图库。然后出现 attr/colorError not found 消息。 这是应用程序 build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    defaultConfig {
        applicationId "com.robyn.myapplication"
        minSdkVersion 19
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testImplementation 'junit:junit:4.12'
    implementation 'com.android.support:recyclerview-v7:26.0.0-beta2'
    implementation 'com.android.support:appcompat-v7:26.0.0-beta2'
}

每当我添加两个库实现“com.android.support:recyclerview-v7:26.0.0-beta2”和 执行 'com.android.support:appcompat-v7:26.0.0-beta2',会出现以下错误消息:

我尝试清理并重建,错误消息仍然存在。我检查了 res/values/colors,颜色值在那里。为什么我会收到此颜色错误?如果我想使用回收站视图,我应该导入什么版本的库?

【问题讨论】:

  • 你应该理想地匹配 compileSdkVersion

标签: android gradle android-recyclerview


【解决方案1】:

更改以下细节即可正常工作,

compileSdkVersion 26
buildToolsVersion "26.0.0-beta2"

【讨论】:

  • 谢谢你。我们开发了一个应用程序,每 3 个月左右更新一次,令人沮丧的是——每次我们打开 Android Studio——在进行任何开发工作之前,都有大量的更新、补丁和“快速修复”需要下载和应用。不能说 XCode 比所有不兼容的 Swift 版本更好。哎呀,对突然爆发感到抱歉:)感谢您分享此问题的解决方案!
  • 我怎样才能对 Fredrik 的评论点赞一百万次左右
  • @Muthukrishnan Rajendran 它是工作的朋友。谢谢
【解决方案2】:

还将compileSDKVersionbuildToolsVersion 升级到26(当时是25)为我解决了这个问题:

compileSdkVersion 26
buildToolsVersion '26.0.2'
...
dependencies {
    ...
    compile 'com.android.support:appcompat-v7:26.0.2'

}

一般来说,请确保所有版本保持一致(编译、构建、appcompat 库)。

这是为了确保运行时的编译和稳定性(如果 lint 发现不同的支持库版本,也可以看到关于后者的 lint 警告)

【讨论】:

    【解决方案3】:

    修订版 26.0.0 Beta 2

    请注意,26.0.0-beta2 是一个预发布版本。它的 API 表面可能会发生变化,并不一定包括 来自最新稳定版本支持的功能或错误修复 图书馆。

    对于您的问题,您可以使用 "26.0.0-beta2" 。如果你使用 Stable 版本会更好。

    【讨论】:

    • 我在稳定版(26.0.1)有同样的问题
    • @deviant Google 开发者。应该看看这件事。每天都有新的错误来了
    • @deviant 同样的问题对于26.0.0-beta2 ?
    【解决方案4】:

    在 Android/build.gradle 底部粘贴以下代码对我有帮助:

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

    【讨论】:

      【解决方案5】:

      当我的应用在 appcompat-26 上并尝试包含一个 Android 库而该库又使用 appcompat-25 时,我看到了同样的错误。 到目前为止,我的解决方案是将应用程序也保持在 25 岁。

      我不知道它是否应该是这样的。当然,您必须能够发布一个使用支持库版本 X 的库,并让它在使用支持库版本 X+1 的应用程序中运行。

      我使用的是 AS 3.0-beta7,所以也许它已在几天前发布的稳定版 3.0 上得到解决。

      【讨论】:

        【解决方案6】:

        只需更改minSdk

        例如:

        android {
           compileSdkVersion 26
           buildToolsVersion "26.0.0-beta2"
           defaultConfig {
              applicationId "com.parse.starter"
              minSdkVersion 15
              targetSdkVersion 21
              versionCode 1
              versionName "1.0"
           }
        }
        

        希望对你有帮助

        【讨论】:

          【解决方案7】:

          我发现这个“attr/colorError”错误发生在我创建产品风味并将“旧版”放在我的 build.gradle(在“app”文件夹中)的“当前”之后。当我将“遗留”放在“当前”之前(如下所示)时,错误就消失了。可能需要先出现较低的“versionCode”或“Sdk”版本?

             flavorDimensions "legacycurrent"
             productFlavors {
          
                legacy {
                         dimension "legacycurrent"
                         versionCode 98
                         minSdkVersion 9
                         targetSdkVersion 25
                         compileSdkVersion 25
                       }
                current {
                         dimension "legacycurrent"
                         versionCode 99
                         minSdkVersion 14
                         targetSdkVersion 26
                         compileSdkVersion 26
                       }
             }
          

          【讨论】:

            【解决方案8】:

            FWW - 对于未来的搜索者,我已将以下代码添加到我的根 build.gradle 以搜索依赖项并修复它们以匹配我的根项目。为什么这是一个坏主意可能有一些警告和原因,但它始终对我有用。

            subprojects {
                afterEvaluate {subproject ->
                    if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
                        android {
                            compileSdkVersion rootProject.ext.compileSdkVersion
                            buildToolsVersion rootProject.ext.buildToolsVersion
                        }
                    }
                }
            }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-05-30
              相关资源
              最近更新 更多