我有一个Android应用程序,我想有不同的口味。具体来说,我希望有两种口味,每种口味使用不同的字符串(不同的strings.xml
文件),也许有一些不同的图标。
我尝试在项目的根文件夹中创建两个文件夹:flav1
和flav2
并使用以下build.gradle
android {
compileSdkVersion "Google Inc.:Google APIs:15"
buildToolsVersion "17.0.0"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
productFlavors {
flav1 {
packageName "com.ic.flav1"
}
flav2 {
packageName "com.ic.flav2"
}
}
android.sourceSets.flav2 {
res {
srcDir 'flav2'
}
resources {
srcDir 'flav2'
}
}
android.sourceSets.flav1 {
res {
srcDir 'flav1'
}
resources {
srcDir 'flav1'
}
}
}
结果是没有识别出任何字符串,导致出现以下类型的多个错误:
建立失败:
错误:错误:找不到与给定名称匹配的资源(at 'contentDescription',其值为'@ string / txt_addr')。
我错过了什么吗? build.gradle应该怎么做?
由于
答案 0 :(得分:9)
解决方案是添加目录
值
在每个相应的res文件夹下,所有字符串都被识别。