值为-b + sr + Latn的Android构建错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了值为-b + sr + Latn的Android构建错误相关的知识,希望对你有一定的参考价值。

您好我正在尝试使用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错误: :app:generateDebugResources UP-TO-DATE:app:mergeDebugResources:app:processDebugManifest UP-TO-DATE:app:processDebugResources无效的资源目录名:C: Users weather app build intermediates res merged debug /值-b + SR + LATN

失败

FAILURE:构建因异常而失败。

  • 出了什么问题:任务':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级别24)您能指出我的错误吗?

答案

在build.gradle中尝试这个

aaptOptions {
    ignoreAssetsPattern "!values-b+sr+Latn"
}
另一答案

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

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

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

所以你最终得到类似的东西

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


}

当重建项目时,它立即为我修复了它

另一答案

Some background

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

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

例子:

  • b +和
  • b + in + US
  • B + IT + 419

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

How to fix this

由于此功能是在API 24中引入的,我怀疑将构建工具更新到至少24将解决问题。

android {
    buildToolsVersion "27.0.3"
}

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

以上是关于值为-b + sr + Latn的Android构建错误的主要内容,如果未能解决你的问题,请参考以下文章

split命令

jQuery常用方法

为什么赋值操作符函数的参数为const引用,返回值为引用

0605-Zuul构建API Gateway-使用Sidecar支持异构平台的微服务

华硕b450m-k主板BIOS里SR-IOV support 开启还是关闭,这个是干啥用的?

SFP-10G-LR和SR是什么?应用在哪里?