【发布时间】:2013-09-09 06:56:02
【问题描述】:
我是 gradle 新手,想使用带有风味、构建类型和自定义源集的 gradle android 插件。使用风味和构建类型构建作品可以找到。不幸的是,我有一个遗留的项目目录结构,所以我必须为 buildtypes 自定义 res 目录。
不知何故,构建类型的附加资源(基本上是一些字符串配置值)似乎没有合并到构建中,也没有替换主树中的资源键。
这是以前问过的,我知道有 Gradle productflavors sourcesets and old project structure 和 How can I specify per flavor buildType sourceSets?
我想引用第一篇文章中的 Xavier:“您需要先声明您的风味,然后自定义 sourceSet。”
我了解风味配置会自动创建源集,并且之后需要对其进行修改。这就是我在下面的 build.gradle 中尝试的,但是我为每个 buildtype 添加的“res.srcDirs”似乎被忽略了,我不知道为什么。
在第二篇文章中(最后一条评论带有指向 github 的链接),我在 build.gradle 中看到了复杂的源集修改。还有更简单的方法吗? (见这里:https://github.com/shakalaca/learning_gradle_android/blob/master/07_tricks/app/build.gradle)
这是我的 gradle android 插件的构建配置:
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 9
targetSdkVersion 17
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
productFlavors {
normal {
}
proguard {
proguardFile file("proguard-project.txt")
}
}
buildTypes {
dev {
packageNameSuffix ".dev"
debuggable true
signingConfig android.signingConfigs.debug
}
beta {
packageNameSuffix ".beta"
debuggable true
signingConfig android.signingConfigs.debug
}
live {
packageNameSuffix ".live"
debuggable true
signingConfig android.signingConfigs.debug
}
}
sourceSets.dev.res.srcDirs = ['variations/dev']
sourceSets.beta.res.srcDirs = ['variations/staging']
sourceSets.live.res.srcDirs = ['variations/live']
}
【问题讨论】: