我有两种版本的应用程序,每个应用程序都有自己的谷歌地图(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)
有什么想法吗?或者更好的方法呢?
今天我开始转换我们的项目以使用gradle构建系统.我无法改变项目结构,我有不同的风格,所以我想知道如何覆盖"dev"和"prod"的源集,因为这显然不起作用:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.2'
}
}
apply plugin: 'android'
android {
compileSdkVersion 17
buildToolsVersion "17"
dependencies {
compile project(':ABS')
compile project(':google-play-services_lib')
compile project(':MergeAdapter')
compile fileTree(dir: 'libs', include: '*.jar')
}
signingConfigs {
release {
storeFile file("myapp.keystore")
storePassword "**********"
keyAlias "**********"
keyPassword "**********"
}
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aild.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
dev {
java.srcDirs = ['src-dev'] …Run Code Online (Sandbox Code Playgroud)