解决被依赖module中BuildConfig.DEBUG的值总为false问题

在Android的实际开发中,一般会有这样的需求,debug和release版本不同,接口地址不同,同时控制日志是否打印等,系统为我们提供了一个很方便的类BuildConfig可以自动判断是否是debug模式。
有了BuildConfig.DEBUG之后,你在代码中可以直接写入

if (BuildConfig.DEBUG) { 
Log.d(TAG, "output something");
}

在平时直接运行代码的时候BuildConfig.DEBUG的值自动为true,
在发布后BuildConfig.DEBUG的值自动为false,
可以说是非常方便。
BUT。。。。
在Android Studio中(ADT不确定是否存在此问题),如果你的项目A依赖另外一个module B,而你也想通过BuildConfig.DEBUG来控制日志等,很遗憾,It not work!
不论你是debug还是release,BuildConfig.DEBUG的值都是false!

因为这个令人头疼的问题,我参考了各种办法都不行!
首先想到的是通过
buildConfigField “boolean”, “IS_DEBUG”, “true”
设置自定义参数来判断,结果还是不行。

然后看到
http://blog.csdn.net/qq549631030/article/details/51088904
这篇文章也遇到了同样的问题,通过添加 defaultPublishConfig “debug” 解决,这样虽然再debug状态下好使了,但是在发release版本的时候会导致DEBUG仍然为true,
除非手动修改defaultPublishConfig “release”,但是这样做就失去了我们最初的目的!

最后子stackoverflow上得到了解决
http://stackoverflow.com/questions/20176284/buildconfig-debug-always-false-when-building-library-projects-with-gradle
解决方法如下
With Android Studio 1.1 and having also the gradle version at 1.1 it is possible:

Library

android {
    publishNonDefault true
}

App

dependencies {
    releaseCompile project(path: ':library', configuration: 'release')
    debugCompile project(path: ':library', configuration: 'debug')
}

亲测好用!

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值