【Android 多模块开发时,BuildConfig配置在AAR被默认定义的问题】

在Android多模块开发中,配置BuildConfig在BuildType里,方便开发使用。但多模块开发时,未开发模块用生成的AAR参与编译,AAR值固定,易造成未打开编译模块配置失效。文中给出仿照Debug值修改、底层模块实现方法获取配置、全源码打包等解决方案。

Android 多模块开发时,BuildConfig配置在AAR被默认定义的问题

问题背景:

在Android 开发时,我们经常会配置BuildConfig在BuildType中,比如这样:

buildTypes {
        release {
            minifyEnabled false
            signingConfig signingConfigs.releaseConfig
            buildConfigField "boolean", "IS_TEST", "true"
        }
        debug {
          	minifyEnabled false
            buildConfigField "boolean", "IS_TEST", "true"  
        }
}

方便我们使用一些配置在开发的时候,但是在多模块开发时,不需要当前开发的模块可以使用生成的AAR参与编译,这时就会有一个问题,如果我们使用BuildConfig.IS_TEST在我们的项目中,生成的AAR该值是固定的,会直接生成truefalse,而不是BuildConfig.IS_TEST,因此很容易造成未打开编译的模块配置失效。

解决方案:

仿照Debug这个值的方式进行修改,看它的生成方式,

public static final boolean DEBUG = Boolean.parseBoolean("true");

所以可以这样修改:

buildTypes {
        release {
            minifyEnabled false
            signingConfig signingConfigs.releaseConfig
            buildConfigField "boolean", "IS_TEST", "Boolean.parseBoolean(\"true\")"
        }
        debug {
          	minifyEnabled false
            buildConfigField "boolean", "IS_TEST", "Boolean.parseBoolean(\"true\")" 
        }
}

当然还有一些其他方案:

1.在底层模块实现一个方法来拿配置,其余模块使用这个方法而不是直接使用BuildConfig.IS_TEST

2.全源码打包。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值