android studio通过build.gradle动态改变AndroidMainfest.xml

开发中有开发环境、测试环境等很多不同的环境,不同环境会对应很多不同的配置,如友盟、融云、自己的服务器等,所以每次打包都会手动改很多地方。

为了方便管理,将配置信息统一写到项目根目录下的gradle.properties(没有的话,新建个)

内容如:

# pack: dev|test
pack=test

#服务端地址
serverurl.dev=\"https\://www.123dev.com/\"
serverurl.test=\"https\://www.123test.com/\"
#融云appkey
rongcloudappkey.dev=\"123213abd\"
rongcloudappkey.test=\"3453462342\"


一、比方说修改 AndroidMainfest.xml 里面的融云appkey:


然后在 build.gradle 里面配置:

1.在 apply plugin: 'com.android.application' 后面添加

Properties properties = new Properties()
properties.load(project.rootProject.file('gradle.properties').newDataInputStream())
String pack = properties.getProperty("pack", "dev")

2.修改 android{

defultConfig{

 manifestPlaceholders = [RONG_CLOUD_APP_KEY_VALUE:properties.getProperty("rongcloudappkey."+pack)]

}


二、修改代码的配置信息,比如说代码里面的服务器url

1.修改 android{

defultConfig{

 buildConfigField "String", "SERVER_URL", properties.getProperty("serverurl."+pack)

}

2.代码里面直接调用  BuildConfig.SERVER_URL,如果报错的话,clean一下


这时,打包的时候只需要修改 gradle.properties 里面的 page 值就可以了。



你可能感兴趣的:(android)