为了应对不同项目不同源码需求,实现自动多项目多渠道打包,buildgradle中:
android{
……
productFlavors {
//新建产品product
project1 {
}
project2 {
}
}
sourceSets {
project1 {
java.srcDirs = ['src/project1', 'src/project1/java', 'src/project1/java/']
}
project2 {
java.srcDirs = ['src/project2', 'src/project2/java', 'src/project2/java/']
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
// 批量打包
applicationVariants.all{ variant ->
variant.outputs.each { output ->
def fineName = "appname_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(rootProject.getRootDir().getAbsolutePath()+project.allPath, fineName)
}
}
}
// debug {
// // 批量打包
// applicationVariants.all{ variant ->
// variant.outputs.each { output ->
// def fineName = "appname_${variant.productFlavors[0].name}.apk"
// output.outputFile = new File(rootProject.getRootDir().getAbsolutePath()+project.allPath, fineName)
// }
// }
// }
}
……
}
这样只要执行gradlew assemblerelease,即会生成appname_project1.apk及appname_project2.apk