Android 多渠道打包如何修改app name,icon?

搞过多渠道打包的都知道,我们只需要在 module 的build.gradle中配置相应的渠道号就行:

                productFlavor{
                          baidu {
                          }
                        xiaomi{}
                         wandoujia{}
                    }

像这样,就可以了,然后将友盟的chanelvalue修改下就可以了,需要不同的渠道,配置不同的applicationid,也不是什么难事。不过今天我遇到的需求是,不同的渠道配置不同的appname和icon。一开始我想着用之前的哪种方法应该可行,然后就试了下,一试不知道,试过就蛋疼了,appname是可以换掉,但是icon呢,,咋整,,,找了一圈方法,都木有找到,郁闷,string类型的,都可以通过常用的那种替换占位符的方式来改,或者是resValue(这个没有试,,但是似乎是可以的)。然后各种搜资料,有什么设置 useOldManifestMerger false ,不过自己没试成功(不能怪我,理论是这个道理的,只不过gradle版本不一样,Google升级了,导致我懵逼了)偶然间Google了一下 how to change app icon for diffrent productFlavors in android,点开第一个链接,然后答主的答案给了我一些启发:

QQ截图20160811184619.png

然后搜啊搜,又找到了这个

QQ截图20160811185123.png

然后经过自己的摸索,搞了出来了,简单来说:
大家看第一张图你的目录结构就会发现,如果我们在src/main/文件夹下新建以我们去渠道名为名的,目录结构和main一样的文件目录,当我们打包的时候就会读取这里面的资源文件,所以呢,我就新建了个清单文件,将头部换成图二所示,在根目录添加

              xmlns:tools="http://schemas.android.com/tools"

然后application

      tools:replace="android:icon" 
      android:icon="@drawable/icon_all"

替换你需要换的icon就行,ok,至此搞定,至于为什么这么搞,我看到了官方的一篇文章清单合并,另外还有篇国内译文

剩下的就靠小伙伴么自己摸索了。。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,132评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,886评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,946评论 6 342
  • 最近在项目中遇到需要实现 Apk 多渠道、定制化打包, Google 、百度查找了一些资料,成功实现了上述功能,在...
    看一季残花落幕阅读 2,523评论 1 8
  • 我求这永恒的时间,让我再看你一眼。 不为眷恋,只为记住你的容颜。 你在我眼中生根发芽, 你柔软的背影开出了一树一树...
    衣角都辉荣阅读 205评论 0 1