android gradle 多项目配置不同包名、icon、config变量

def isAppId = 1;

if(isAppId == 1 ) {
    versionCode 15
    versionName "1.0"
    flavorDimensions "15"
    resValue "string", "app_name", "hehe"
    buildConfigField 'int','firmId',"2"
    applicationId "com.xxx.b"
} else if(isAppId == 2 ) {
    versionCode 15
    versionName "1.0"
    flavorDimensions "15"
    resValue "string", "app_name", "haha"
    buildConfigField 'int','firmId',"3"
    applicationId "com.xxx.a"
} 
 
productFlavors{
   if (isAppId == 1 ) {
       trf {
           manifestPlaceholders = [icon:"@mipmap/ic_launcher"]
       }
   } else if (isAppId == 2 ) {
       duowei {
           manifestPlaceholders = [icon:"@mipmap/ic_launcher"]
       }
   }
}

<application
    android:name=".SophotFixApplication"
    android:allowBackup="true"
    android:icon="${icon}"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:supportsRtl="true"
    android:theme="@style/SlideTheme"
要点介绍

1:applicationId 是gradle打包后变更包名的条件,

2:resValue 更改APK名称,更改清单文件中的@string/app_name,但要把values.xml中的app_name删除掉才行,要不会报错

3:buildConfigField:是为了BuildConfig文件中添加config变量,自定义变量名称,然后代码中直接调用就可以,

    第一个参数是类型,第二个参数是自定义的名称,第三个参数是变量,定义什么类型的变量,对应Config中就会出现什么类型的变量

4:flavorDimensions 定义一定要跟versioncode一致,就是给flavor一个控制范围,这是为了控制icon

5:productFlavores 中如果想变更icon的话就在flavores中添加mainfestPlaceholders 可以变更app_name和icon,

    我写的是更改icon,如果想更改app_name  :  [label:"hehe",icon:"@minmap/ic_launcher" ]


这样写就在本地gradle中通过参数配置完成不同包名和icon了,如果后台强大的话可以通过listions权限控制







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值