2 wangbin learn wangbin_learn 于 2016.01.18 10:15 提问

AndroidStudio多渠道打包

今天公司要把APP上线一些渠道,本来想用多渠道打包的,在网上跟着做了下,然后报错。
网上方法貌似都不能用了啊。都是一年前的方法,找不到最新的。
图片说明
使用后报找不到productFlavors()这个错,查了下好像是这个方法过时了?但是没有见解决办法啊。
图片说明
这是我Moudle的gradle的所有配置。请教大神指导下啊。

2个回答

xuhao885544
xuhao885544   2016.01.18 12:13

友盟多渠道打包

在AndroidManifest.xml里面会有这么一段:

<meta-data
android:name="UMENG_CHANNEL"
android:value="Channel_ID" />

里面的Channel_ID就是渠道标示。我们的目标就是在编译的时候这个值能够自动变化。

第一步 在AndroidManifest.xml里配置PlaceHolder

<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />

第二步 在build.gradle设置productFlavors

android {  
    productFlavors {
        xiaomi {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
        }
        _360 {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "_360"]
        }
        baidu {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
        }
        wandoujia {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
        }
    }  
}

或者批量修改

android {  
    productFlavors {
        xiaomi {}
        _360 {}
        baidu {}
        wandoujia {}
    }  

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

assemble: 允许直接构建一个Variant版本,例如assembleFlavor1Debug。

assemble: 允许构建指定Build Type的所有APK,例如assembleDebug将会构建Flavor1Debug和Flavor2Debug两个Variant版本。

assemble: 允许构建指定flavor的所有APK,例如assembleFlavor1将会构建Flavor1Debug和Flavor1Release两个Variant版本。
按照这样试一下

wangbin_learn
wangbin_learn 我就是看了这个博客根据他的来做的,但是我把productFlavors 这段代码加上后,就报我上面那个错了。不行啊。
接近 2 年之前 回复
wangbin_learn
wangbin_learn   2016.01.18 18:18

我就是看了这个博客根据他的来做的,但是我把productFlavors 这段代码加上后,就报我上面那个错了。不行啊。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!