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

需求

利用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 没了

转载于:https://my.oschina.net/wanglanfeng/blog/834050

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值