搞過多渠道打包的都知道,我們只需要在 module 的build.gradle中配置相應(yīng)的渠道號就行:
productFlavor{
baidu {
}
xiaomi{}
wandoujia{}
}
像這樣,就可以了,然后將友盟的chanelvalue修改下就可以了,需要不同的渠道,配置不同的applicationid,也不是什么難事。不過今天我遇到的需求是,不同的渠道配置不同的appname和icon。一開始我想著用之前的哪種方法應(yīng)該可行,然后就試了下,一試不知道,試過就蛋疼了,appname是可以換掉,但是icon呢,,咋整,,,找了一圈方法,都木有找到,郁悶,string類型的,都可以通過常用的那種替換占位符的方式來改,或者是resValue(這個沒有試,,但是似乎是可以的)。然后各種搜資料,有什么設(shè)置 useOldManifestMerger false ,不過自己沒試成功(不能怪我,理論是這個道理的,只不過gradle版本不一樣,Google升級了,導(dǎo)致我懵逼了)偶然間Google了一下 how to change app icon for diffrent productFlavors in android,點(diǎn)開第一個鏈接,然后答主的答案給了我一些啟發(fā):
然后搜啊搜,又找到了這個
然后經(jīng)過自己的摸索,搞了出來了,簡單來說:
大家看第一張圖你的目錄結(jié)構(gòu)就會發(fā)現(xiàn),如果我們在src/main/文件夾下新建以我們?nèi)デ烂麨槊?,目錄結(jié)構(gòu)和main一樣的文件目錄,當(dāng)我們打包的時候就會讀取這里面的資源文件,所以呢,我就新建了個清單文件,將頭部換成圖二所示,在根目錄添加
xmlns:tools="http://schemas.android.com/tools"
然后application
tools:replace="android:icon"
android:icon="@drawable/icon_all"
替換你需要換的icon就行,ok,至此搞定,至于為什么這么搞,我看到了官方的一篇文章清單合并,另外還有篇國內(nèi)譯文
剩下的就靠小伙伴么自己摸索了。。。。