值-b + sr + Latn

时间:2016-10-09 19:23:33

标签: android android-gradle android-support-library

您好我正在尝试使用Android支持库构建我的第一个项目,以支持市场上所有设备的材料设计。在我的旅程开始时,我从零开始创建一个项目,当我使用此模块配置从graddle构建时:

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "19.1"
    defaultConfig {
        applicationId "com.sunshine.org.weather"
        minSdkVersion 13
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
    testCompile 'junit:junit:4.12'
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'com.android.support:support-v4:24.2.1'
    compile 'com.android.support:design:24.2.1'
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:support-v13:24.2.1'
}


我得到了错误 - >>>


GRADDLE ERROR:
:app:generateDebugResources UP-TO-DATE :应用:mergeDebugResources :app:processDebugManifest UP-TO-DATE :应用:processDebugResources 无效的资源目录名称:C:\ Users \ weather \ app \ build \ intermediates \ res \ merged \ debug / values-b + sr + Latn

FAILED

失败:构建因异常而失败。

  • 出了什么问题: 任务':app:processDebugResources'的执行失败。 com.android.ide.common.process.ProcessException:无法执行aapt

  • 尝试: 使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。

建立失败
当我删除包含相应XML文件的“values-b + sr + Latn”文件夹时,在我构建项目时,它总是由工作室重新创建。 我试图清理和构建,但这不能解决我的问题。


我正在尝试在 KitKat(API级别14) 上运行该应用,并希望将材料设计归结为 HONEYCOMB(API级别13),支持应用程序最多 NOUGAT(API Level 24) 你能指出我的错误吗?

3 个答案:

答案 0 :(得分:7)

在build.gradle

中试试
aaptOptions {
    ignoreAssetsPattern "!values-b+sr+Latn"
}

答案 1 :(得分:4)

要扩展粉末366的答案和评论,因为我没有代表对自己发表评论。

在Project:Name中称为'build.gradle'的Gradle脚本中,有一个带括号的'android'部分。在这些括号内你可以添加

  

aaptOptions {       ignoreAssetsPattern“!values-b + sr + Latn”   }

所以你最终会得到像

这样的东西
android {
   aaptOptions {
       ignoreAssetsPattern "!values-b+sr+Latn"
   }


}

在重建项目

时立即为我修复了它

答案 2 :(得分:0)

一些背景

  

Android 7.0(API级别24)引入了对BCP 47语言标记的支持,您可以使用它来限定特定于语言和区域的资源。语言标签由一个或多个子标签的序列组成,每个子标签细化或缩小由整个标签识别的语言范围。有关语言标记的详细信息,请参阅标识语言的标记。

     

要使用BCP 47语言标记,请连接b +和两个字母的ISO 639-1语言代码,可选地后跟由+分隔的其他子标记。

     

示例:

     
      
  • B + EN
  •   
  • B + EN + US
  •   
  • B + ES + 419
  •   

https://developer.android.com/guide/topics/resources/providing-resources.html#QualifierRules

如何解决此问题

由于API 24中引入了此功能,我怀疑更新构建工具至少可以解决24个问题。

android {
    buildToolsVersion "27.0.3"
}

Gradle的最新Android插件将自动处理构建工具版本,因此您可以完全删除该行。