Java Android gradle flavors,每个flavor的sourceset带有多个srcdir,强制重写值/strings.xml
这是一个后续问题 提出了一个奇怪的问题 也就是说,如中所述,当为每种口味使用多个源集时,对于res和resources,一切正常,来自其他目录的资源都合并在一起 问题: flavor values/strings.xml不会替换主项目中的值/strings.xml (这是我保存应用程序标签和应用程序图标的地方)。由于这种行为,我的应用程序图标和标题被弄乱了(不是因为味道) 我在这里发现了一些东西: (标题处理多个资源文件夹)但这并不能帮助我更进一步,因为我不明白如何强制此特定风格的文件覆盖主项目中的其他文件 ==编辑== 我的项目结构和build.gradle(主项目) 项目结构Java Android gradle flavors,每个flavor的sourceset带有多个srcdir,强制重写值/strings.xml,java,android,xml,gradle,android-gradle-plugin,Java,Android,Xml,Gradle,Android Gradle Plugin,这是一个后续问题 提出了一个奇怪的问题 也就是说,如中所述,当为每种口味使用多个源集时,对于res和resources,一切正常,来自其他目录的资源都合并在一起 问题: flavor values/strings.xml不会替换主项目中的值/strings.xml (这是我保存应用程序标签和应用程序图标的地方)。由于这种行为,我的应用程序图标和标题被弄乱了(不是因为味道) 我在这里发现了一些东西: (标题处理多个资源文件夹)但这并不能帮助我更进一步,因为我不明白如何强制此特定风格的文件覆盖主项目
- 第三方
- 图形
- 图标集
- IconsetBase
- Iconset1
- Iconset3
- 图标集
- 图形
- 主要项目
- src
- 主要项目(主要项目)
- flavor1
- flavor2
- src
已解决 问题在于MainProject.iml
将味道路径添加到RES\u文件夹\u RELATIVE\u路径后,一切正常您可以发布build.gradle文件吗?当然可以。请参见==编辑==下的内容,因此,如果两种版本都有一个main strings.xml和strings.xml,则不能这样覆盖它。去掉main strings.xml中的任何重复字符串,因为它们永远不会被使用,对吗?您的main strings.xml应该只包含两种风格都将使用的字符串。当然,但存在一个问题。它是app_name元素。如果我从mail strings.xml中删除了它,那么我会得到一个错误,无法生成。我试图从main中删除app_名称,并将其添加到其他风格中。不工作是什么样的错误?我的main strings.xml中没有我的app_name字符串,这没有问题。
buildscript {
repositories {
mavenCentral()
}
dependencies {
repositories {
mavenCentral()
}
classpath 'com.android.tools.build:gradle:0.10.0'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
useOldManifestMerger false
compileSdkVersion 19
buildToolsVersion "19.0.3"
lintOptions {
...
}
sourceSets {
main.java.srcDirs = ['src/main/java']
main.resources.srcDirs = ['src/main/res']
}
signingConfigs {
...
}
buildTypes {
...
}
// Common dependencies
dependencies {
compile project(':3rdparty:Graphics:Iconsets:IconsetBase')
}
defaultConfig {
...
}
productFlavors {
flavor1 { packageName "..."}
flavor2 { packageName "..."}
}
android.sourceSets.flavor1 {
res {
srcDirs = ['flavor1','../3rdparty/Graphics/Iconsets/IconsetBase/src/main/res', '../3rdparty/Graphics/Iconsets/Iconset1/src/main/res']
}
resources {
srcDirs = ['flavor1','../3rdparty/Graphics/Iconsets/IconsetBase/src/main/res', '../3rdparty/Graphics/Iconsets/Iconset1/src/main/res']
}
}
android.sourceSets.flavor2 {
res {
srcDirs = ['flavor2','../3rdparty/Graphics/Iconsets/IconsetBase/src/main/res', '../3rdparty/Graphics/Iconsets/Iconset3/src/main/res']
}
resources {
srcDirs = ['flavor2','../3rdparty/Graphics/Iconsets/IconsetBase/src/main/res', '../3rdparty/Graphics/Iconsets/Iconset3/src/main/res']
}
}
}
dependencies {
compile 'com.android.support:support-v4:19.1.0'
compile 'com.android.support:appcompat-v7:19.1.0'
compile 'com.google.android.gms:play-services:4.3.23'
}