我有两种版本的应用程序,每个应用程序都有自己的谷歌地图(v1)密钥用于调试和发布(总共4个密钥).所以我想知道我是否可以根据buildType和productFlavor指定sourceSets.从本质上讲,我想知道如何实现这样的目标:
src
??? debug
? ??? flavor1
? ??? res
? ??? values
? ??? gmaps_key.xml
??? release
? ???flavor1
? ??? res
? ??? values
? ??? gmaps_key.xml
Run Code Online (Sandbox Code Playgroud)
gradle将使用src/<currentBuldType>/<currentProductFlavor>/*其sourceSet的一部分.
基本上我希望它这样,如果我跑gradle assembleFlavor1Debug这将包括所有下src/main/*,src/flavor1/*和src/debug/flavor1/*.
我的build.gradle非常简单:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.0'
}
}
apply plugin: 'android'
android {
compileSdkVersion 8
productFlavors {
flavor1 {
packageName 'com.flavor1'
}
flavor2 {
packageName 'com.flavor2'
}
}
}
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?或者更好的方法呢?
Saa*_*ooq 15
我碰巧回到这里是因为对我的回答发表评论,并意识到这个答案是多余的(仍然比被接受的答案更好).对于每个productFlavor和buildType,组合和各个源集已经存在.ie src/{buildType},src/{productFlavor}并且src/{productFlavor}{buildType}已经是可用的源文件夹.
所以基本上,这是需要的OP一切都投入在资源src/flavor1Debug这相当于给src/debug/flavor1了OP设想.
老回答:
我做过类似的事情,buildConfig但希望它可以合作sourceSets.
基本上,您可以productFlavors在变量中定义级别的常用内容,并在向下移动时继续添加内容.
productFlavors {
def common = 'src/main'
flavor1 {
def flavor = 'src/main/flavor1'
buildTypes {
debug {
sourceSets {
res.srcDirs = [ common + ',' + flavor + ',' + 'src/main/debug'
}
}
release {
sourceSets {
res.srcDirs = [ common + ',' + flavor + ',' + 'src/main/release'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我没有测试过这个.我想你可能需要使用android.sourceSets而不仅仅是sourceSets.
我还需要为其定义单独的资源,productFlavors因此我在构建文件的后期使用了单独的语句.像这样:
android.sourceSets.flavor1 {
res.srcDirs = ['flavor_resources/flavor1/res']
}
Run Code Online (Sandbox Code Playgroud)
android.sourceSets.flavor1.debug如果需要,您应该可以使用.
另请注意,根据Android Gradle 用户指南,使用srcDir将目录添加到默认源并srcDirs替换它们.
对于 Google Maps API 集成,您可以在此处查看我的 gradle 示例代码:https ://github.com/shakalaca/learning_gradle_android/tree/master/07_tricks
android.applicationVariants.all基本上在这个阶段做了一些小技巧mergeResources,并将 API 密钥放在不同 flaver/buildtype 组合文件夹下的 strings.xml 中。
| 归档时间: |
|
| 查看次数: |
13981 次 |
| 最近记录: |