Android gradle根据渠道采用不同的图标和应用名

有时候项目在不同渠道下要使用不同的应用图标和应用名,每次手动替换费时费力,可以在gradle中配置,一步到位

 

buildTypes {
        debug {
            manifestPlaceholders = [app_name: "@string/app_name", app_icon: "@mipmap/icon_logo"]
        }

        release {
            zipAlignEnabled true
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def flavorFlag = "${variant.productFlavors.get(0).name}"
                    if (flavorFlag == "qh360Store") {
                        manifestPlaceholders = [app_name: "@string/app_name_360", app_icon: "@mipmap/icon_logo_360"]
                    } else {
                        manifestPlaceholders = [app_name: "@string/app_name", app_icon: "@mipmap/icon_logo"]
                    }
                }
            }
        }
    }

如代码所示,我判断是360渠道的时候,采用了app_name_360,icon_logo_360的资源

然后在清单文件中配置一下

    <application
        android:name="com.mine.test.application.MyApplication"
        android:allowBackup="true"
        android:icon="${app_icon}"
        android:label="${app_name}"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

app_icon和app_name与gradle中的要一致

 

我再搜寻相关文章的时候发现他们说在buildTypes,productFlavors,defaultConfig都可以进行配置,优先度是递降的,但是在使用过程中,必须在buildTypes中进行配置,否则项目无法构建成功,所以依我来看,只能在buildTypes中进行渠道区分图标和应用名,如有说错的地方,请指正。

指正:在defaultConfig中可以进行统一配置,上述方法的准确性有待验证,最好在渠道中单独配置

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值