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

来源:互联网 发布:人人贷网络借贷平台 编辑:程序博客网 时间:2024/06/05 04:35

ADT(r17)中添加了一个新功能可以允许开发者只在Debug模式下允许某些代码。

Build系统生成一个名称为BuildConfig的类,该类包含一个DEBUG 常量,该常量会根据您的Build类型自动设置值。

您可以通过(BuildConfig.DEBUG) 常量来编写只在Debug模式下运行的代码。

如果有些代码不想在发布后执行,就可以使用该功能。
比如调试日志,你不想在软件发布后被其他开发者看到,过去的方式是你设置一个全局变量,标记软件为DEBUG模式还是发布模式。

public static boolean DEBUG = true;  

然后在代码中写入

if(DEBUG==true){  
    Log.d(TAG,"output something");  

这样打包发布之前还要修改DEBUG变量的值,有时候不记得改还要重新编译发布,很费时。


有了BuildConfig.DEBUG之后,你在代码中可以直接写入

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

在发布前BuildConfig.DEBUG的值自动为true, 

在发布后BuildConfig.DEBUG的值自动为false,

可以说是非常方便。


BuildConfig.DEBUG在eclipse上使用很正常,但是到了android studio里却出现了问题

被依赖module里BuildConfig.DEBUG的值总为false,因为Library projects目前只会生成release的包.

例如module A依赖module B和module C,在Eclipse里运行时B和C里BuildConfig.DEBUG的值会是true(导出签名apk后会自动变成false);

然而在Android Studio里B和C里的BuildConfig.DEBUG值总是false,A里的正常。

这样就导致if(BuildConfig.DEBUG){Log.d(...)}日志无法正常显示。


解决方法就是在被依赖module 的build.gradle中加入下面内容

android{

defaultPublishConfig "debug"

}


0 2