原理:只要往AndroidManifest中注入一个能够区分渠道的标识就可以了
实际做法,为了能够动态注入一个渠道标识,就必须使用gradle进行动态选择渠道赋值
1、在App的AndroidManifest.xml文件下,新增meta-data
<meta-data android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
2、在App的build.gradle 的android下新增
/**
* 必须要保证所有的flavor 都属于同一个维度
*/
flavorDimensions "default"
注意:不加这一个会报错
解决Error:All flavors must now belong to a named flavor dimension
/**
* 配置渠道
*/
productFlavors {
//官方
official {}
//华为
huawei {}
//应用宝
tencent {}
}
/**
* 渠道赋值,AndroidManifest 中的"UMENG_CHANNEL_VALUE"参数
* 打所有包命令:gradlew clean :assembleRelease
*/
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE:name]
}
案例:
<application
...>
<meta-data android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
</application>
android{
...省略前面
/**
* 必须要保证所有的flavor 都属于同一个维度
*/
flavorDimensions "default"
/**
* 1、配置渠道
*/
productFlavors {
//官方
official {}
//华为
huawei {}
//应用宝
tencent {}
}
/**
* 2、渠道赋值,AndroidManifest 中的"UMENG_CHANNEL_VALUE"参数
* 3、打所有包:gradlew clean :assembleRelease
*/
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE:name]
}
}