您好我正在尝试使用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)
你能指出我的错误吗?
答案 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插件将自动处理构建工具版本,因此您可以完全删除该行。