Android开发之Gradle多渠道打包总结

首先老套路看图:分别是小米的渠道和应用宝的渠道

这是渠道的渠道号的截图

 

先说下Gradle的多渠道打包,个人更喜欢这样写:

第一步:需要在清单文件添加标识:

<meta-data
           android:name="XiaYiYe"
           android:value="${XiaYiYeValue}" />

配置的name和value不是固定值,可以自己取的

第二步:

在app的gradle的android根节点添加如下配置:

 productFlavors {
        tool {
            manifestPlaceholders = [XiaYiYeValue: "360"]
        }
        yyb {
            manifestPlaceholders = [XiaYiYeValue: "yyb"]
        }
        xiaomi {
            manifestPlaceholders = [XiaYiYeValue: "xiaomi"]
        }
        huawei {
            manifestPlaceholders = [XiaYiYeValue: "huawei"]
        }
    }

当然上面的第二步也可以用下面的方法替代我不常用:

  productFlavors {
        "wandoujia" {

        }
        "xiaomi" {

        }
        "yyb" {

        }
        "huawei" {

        }
        baidu {

        }
        productFlavors.all {
            flavor -> flavor.manifestPlaceholders = [XiaYiYeValue: name]
        }
    }

注意:

如果你跑起来后报错如下:

ERROR: All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html
Affected Modules: app

请在app的gradle里面的android里面defaultConfig根节点里面添加如下字段即可解决上面的错误

flavorDimensions "default"(这里的default随便写不固定)如下图:

 

这样就配置好了,然后获取渠道号码就行了:

  private void showValue() {
        try {
            PackageManager pm = getPackageManager();
            ApplicationInfo appInfo = pm.getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
            String channel = appInfo.metaData.getString("XiaYiYe");
            Toast.makeText(this, channel, Toast.LENGTH_LONG).show();
        } catch (PackageManager.NameNotFoundException ignored) {
        }
    }

上面的XiaYiYe这个key就是清单文件xml中配置的name这个值,获取到渠道号后直接上传到你们的后台就可以进行渠道统计了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值