您的位置:首页 > 移动开发

Android-Gradle 构建修改[applicationId]和[packageName]

2017-02-08 00:00 363 查看
摘要: 使用Ideazuowei

需求

利用gradle打包时,不止要动态替换配置文件的package,希望生产的 资源文件(R.Strings,R.values)R文件的包名也发生变化,android的gradle 插件默认是不支持的

一,代码目录结构



二,修改 Top-level build.gradle

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
}
}

allprojects {
repositories {
jcenter()
}
}

task clean(type: Delete) {
description 'Clean the build files'
delete rootProject.buildDir
}

tasks.getByPath("app:pre[Flavors_baidu]ReleaseBuild").dependsOn ":app:flavors_baidu_release"
tasks.getByPath("app:pre[Flavors_baidu]DebugBuild").dependsOn ":app:flavors_baidu_debug"
tasks.getByPath("app:pre[Flavors_360]ReleaseBuild").dependsOn ":app:flavors_360_release"
tasks.getByPath("app:pre[Flavors_360]DebugBuild").dependsOn ":app:flavors_360_debug"


直接在构建不同变体时调用自定义的任务,任务定义在 app/build.gradle

三,修改 Second-level build.gradle

配置 flavors

android{
productFlavors {

flavors_baidu{
applicationId 'com.baidu.demo'
versionNameSuffix '.baidu'
}

flavors_360{
applicationId = "com.360.demo"
versionNameSuffix '.360'
}
}
}

自定义任务

android{
task flavors_baidu_release() {
doFirst {
println "----------------------------flavors_baidu_release--------------------------------------"
sourceSets.main. manifest.srcFile 'src/baidu/AndroidManifest_baidu.xml'
println sourceSets.main. manifest.srcFile

println "----------------------------flavors_baidu_release--------------------------------------"
}
}

task flavors_baidu_debug() {
doFirst {
println "----------------------------flavors_baidu_debug--------------------------------------"
sourceSets.main. manifest.srcFile 'src/main/AndroidManifest_baidu.xml'
println sourceSets.main. manifest.srcFile

println "----------------------------flavors_baidu_debug--------------------------------------"
}
}
task flavors_360_release() {
doFirst {
println "----------------------------flavors_360_release--------------------------------------"
sourceSets.main. manifest.srcFile 'src/360/AndroidManifest_360.xml'

println sourceSets.main. manifest.srcFile

println "----------------------------flavors_360_release--------------------------------------"
}
}
task flavors_360_debug() {
doFirst {
println "----------------------------flavors_360_debug--------------------------------------"
sourceSets.main. manifest.srcFile 'src/360/AndroidManifest_360.xml'

println sourceSets.main. manifest.srcFile
println "----------------------------flavors_360_debug--------------------------------------"
}
}
}


OK 没了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: