赞
踩
原文地址:https://blog.csdn.net/u011904605/article/details/54664831
前言
在项目中,我们有时会需要根据不同的项目环境,使用不同的项目变量,比如说,我在测试环境中需要我的app访问的服务器地址是测试服务器上,而正式发布下的app需要访问正式服务器。在这种情况下,我们可以将这个变量放在AndroidManifest文件中,根据不同的编译类型生成服务器指向不同的app。
实现
在之前版本的gradle中,大部分的思路都是在AndroidManifest中定义一个变量,然后在编译的时候,找出那个AndroidManifest中的变量,将它替换掉。
如友盟的多渠道打包,在原来的 AndroidManifest.xml 文件中添加:
然后使用在build.gradle中找出UMENG_CHANNEL_VALUE这个值,并且替换掉
而在新版本的gradle中,processManifest这个方法被移除掉了,而提供了一个新的功能manifestPlaceholders,我们可以在AndroidManifest中定义一个变量,在build.gradle中动态的替换掉,十分方便,语法也十分简单。对比上面的功能,我们需要动态替换友盟的appkey,需要在AndroidManifest中定义一个变量
接着,我们在build.gradle文件中根据不同的环境,生成不同appkey的apk。
运行gralde clean build,你就可以生成不同的appkey的apk,是不是感觉好多了。^ ^
如果你想要替换多个变量,假如你需要两个变量要替换,需要按照下面形式进行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。