Android开发之Gradle多渠道打包总结
生活随笔
收集整理的這篇文章主要介紹了
Android开发之Gradle多渠道打包总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先老套路看圖:分別是小米的渠道和應用寶的渠道
這是渠道的渠道號的截圖
?
先說下Gradle的多渠道打包,個人更喜歡這樣寫:
第一步:需要在清單文件添加標識:
<meta-dataandroid: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這個值,獲取到渠道號后直接上傳到你們的后臺就可以進行渠道統計了
總結
以上是生活随笔為你收集整理的Android开发之Gradle多渠道打包总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android开发之自定义AlertDi
- 下一篇: 全民k歌演唱设备在哪里添加