【问题标题】:Android Studio - Appcompat build fail values-v23/styles_bases.xmlAndroid Studio - Appcompat 构建失败值-v23/styles_bases.xml
【发布时间】:2015-11-12 02:38:24
【问题描述】:

我将从我想要实现的目标开始:构建此处提供的 googlecast-manager 示例:https://github.com/googlecast/GameManagerSamples 我在这里按照说明操作:https://developers.google.com/cast/docs/android_sender

首先我从 github 下载了项目,然后使用 Android SDK Manager 我下载了 Android Support Libraries 和 Google play Services。然后在我的项目中,我去“打开模块设置->添加”然后去“Android SDK\extras\android\support\v7\appcompat”并添加它。

那么确保它正常工作的第一步就是构建它。所以我右键点击了 appcompat->"Compile Module Appcompat" 但它失败了,出现了 2 个错误:

  1. 错误:(20, -1) android-apt-compiler: [appcompat] D:\Android SDK\extras\android\support\v7\appcompat\res\values-v23\styles_base.xml:20: 错误:检索项目的父项时出错:找不到资源 匹配给定名称“android:Widget.Material.Button.Colored”。

  2. 错误:(19, -1) android-apt-compiler: [appcompat] D:\Android SDK\extras\android\support\v7\appcompat\res\values-v23\styles_base_text.xml:19: 错误:检索项目的父项时出错:找不到资源 匹配给定的名称 'android:TextAppearance.Material.Widget.Button.Inverse'。

为 Google Play 做同样的事情就像一种魅力。

我尝试查找视频/其他类似问题,但它要么太复杂,要么不是我的问题。

这里是appcompat的AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="android.support.v7.appcompat">
<uses-sdk android:minSdkVersion="9"
    android:targetSdkVersion="19"/>
<application />

以下是从 Android SDK 管理器安装的内容:

【问题讨论】:

    标签: android android-studio intellij-idea android-appcompat


    【解决方案1】:

    我也遇到了同样的问题,现在已经解决了。你只需要做的就是

    1. 在您的 Android Studio 中
      1. Shift键两次,会出现一个搜索框输入build.gradle
      2. 从建议中选择 build.gradle module:app
      3. dependencies下的compileSdkVersionsupport libraries的主要版本应与以下代码描述相同。
    2. Eclipse 内部
      找到 build.gradle module:app 并执行相同操作。

    注意:正确下载并安装最新的API,现在是API 23

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.0"
    
        defaultConfig {
            applicationId "com.example.inzi.app"
            minSdkVersion 9
            targetSdkVersion 23
            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:23.0.0'
    }
    

    【讨论】:

    • 如何在 Eclipse 中做到这一点。 OP 也在使用 Eclipse。
    • @Solace 您可以在 project.properties 文件中更改它
    • 我认为这会为我解决这个问题,但我使用的是 apache cordova,它会在构建时重新生成整个项目。所以我可以改变这一切,但在编译之前它会覆盖它。有没有办法在不改变项目的情况下做到这一点?
    • @ThisNameBetterBeAvailable 是的,您可以像在 build.gradle 文件中那样设置 compileSdkVersion 和 support:appcompat 依赖项为 22
    【解决方案2】:

    我相信你应该升级你的compileSdkVersion。检查你的build.grade 文件,应该是这样的:

    android {
        compileSdkVersion 23 // <- here
        buildToolsVersion "23.0.0" // <- here
    
        defaultConfig {
            applicationId "your.id"
            minSdkVersion 11
            targetSdkVersion 23 // <- and maybe here
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            ....
        }
    }
    

    当然,您需要从 SDK 管理器下载最新的 Android SDK 和构建工具(以及您需要的任何其他工具)。

    【讨论】:

    • 在 Mac 上的 Android Studio 1.3.2 中,您还可以通过转到 File > Project Structure... 来编辑这些属性,然后在“Modules”下选择您的项目文件夹,多次标记为“app”在 Properties 选项卡下,您可以从下拉菜单中更改 Compile Sdk Version 和 Build tools Version。除了在“Flavors”选项卡下,您还可以从下拉菜单中选择您的 Min Sdk 版本和 Targer Sdk 版本。
    【解决方案3】:

    如果您在 Eclipse 中工作,请执行以下操作:

    1. 在您的AndroidManifest.xml 文件中将android:targetSdkVersion 更改为23
    2. 打开项目设置(ALT + Enter,同时专注于项目资源管理器)
    3. 转到Android 选项卡并在Project Build Target 部分标记Android 6.0
    4. 清理并构建您的项目

    注意:当您这样做时,请记住 Android 操作系统会将您的应用视为设计为在 Android M 上运行。因此,例如,如果您使用一些危险的权限,您应该添加例程以在运行时进行检查。

    【讨论】:

      【解决方案4】:

      您必须将您的 SDK 更新为未下载或未正确安装的 API 23

      在您的build.gradle 设置中

      compileSdkVersion 23
          buildToolsVersion "23.0.0"
      
      
          targetSdkVersion 23
      compile 'com.android.support:appcompat-v7:23.0.0'
      

      【讨论】:

        【解决方案5】:

        我实际上找到了我的问题的答案,上面的人是对的。用于编译模块的模块 SDK 设置为 22.0 而不是 23.0。为了解决这个问题,我做了以下事情。 右键单击 appcompat:“打开模块设置 -> 模块 SDK”:新建。我选择了包含整个 Android SDK 的文件夹,并选择了最后一个 Android(例如 6.0)和最后一个 Module SDK 23.0。

        【讨论】:

          【解决方案6】:

          恢复到 appcompact-v22 或更新到 android api v23

          【讨论】:

            【解决方案7】:

            您必须将您的 SDK 更新到未下载或未正确安装的 API 23。 确保您的 compileSdkVersiondependencies 版本应该相同。

            【讨论】:

              【解决方案8】:

              我在使用新的 appcompat V-23 时遇到问题,因为我的目标 sdk 是 21。所以我做了以下两个步骤,它对我来说非常有效..

              1) 删除 res 文件夹中的 values-23 文件夹。

              2) 我在 src 文件夹上也遇到了错误,因此注释了 sn-p.java 的 main() 中唯一的一行,因为我们不需要它。

              然后将此项目作为库添加到您的项目中。希望对您有所帮助。

              【讨论】:

              • 谢谢兄弟。我不想更新到 23,因为我的目标也是 21。很好的发现。
              【解决方案9】:

              我像下面这样解决了

              android {
                  compileSdkVersion "Google Inc.:Google APIs:21"
                  buildToolsVersion "23.0.0"
              
                  defaultConfig {
                      minSdkVersion 9
                      targetSdkVersion 23
                      versionCode 1
                      versionName "1.0"
                  }
              }
              

              将上面的dependencies替换为下面...

              dependencies {
                  compile fileTree(dir: 'libs', include: ['*.jar'])
                  compile 'com.google.android.gms:play-services:7.8.0'
              }
              

              【讨论】:

                【解决方案10】:

                要在 android studio 中纠正这个错误,如下所示: 我去了sdk manager,我下载并更新了android api 23的所有包 文件 => 项目结构,我将编译 sdk 版本从 21 更改为 23,并将构建工具版本从 21 更改为 23

                【讨论】:

                  【解决方案11】:

                  这个问题一般是因为版本问题。以下依赖项和 compilesdkversion 为我工作:-

                  apply plugin: 'com.android.application'
                  android {
                  compileSdkVersion 23
                  buildToolsVersion '23.0.3'
                  defaultConfig {
                      minSdkVersion 14
                      targetSdkVersion 21
                      versionCode 1
                      versionName "1.0"
                  }
                  packagingOptions {
                      exclude 'META-INF/LICENSE'
                      exclude 'META-INF/LICENSE-FIREBASE.txt'
                      exclude 'META-INF/NOTICE'
                  }
                  buildTypes {
                      release {
                          minifyEnabled false
                          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                      }
                  }
                  productFlavors {
                     }
                   }
                  
                  dependencies {
                  
                  compile fileTree(include: ['*.jar'], dir: 'libs')
                  compile 'com.google.android.support:wearable:+'
                  compile 'com.google.android.gms:play-services-wearable:+'
                  compile 'com.android.support:appcompat-v7:23.0.0'
                  compile 'com.android.support:recyclerview-v7:23.0.0'
                  compile 'com.android.support:support-v13:23.0.+'
                  compile 'com.firebase:firebase-client-android:2.2.4+'
                  }
                  

                  【讨论】:

                    【解决方案12】:

                    本讨论中的答案#31 & #11 可以解决这个问题: https://code.google.com/p/android/issues/detail?id=183122

                    【讨论】:

                      【解决方案13】:

                      我的问题是,我未使用的依赖项之一是使用 sdk-23 版本。因此,在删除那些未使用的依赖项后,它就像一个魅力。

                      【讨论】:

                        猜你喜欢
                        • 2015-11-13
                        • 2016-10-17
                        • 2017-06-08
                        • 2017-01-20
                        • 2019-06-19
                        • 2020-10-16
                        相关资源
                        最近更新 更多