library根据构建类型使用BuildConfig对应的值
app模块引用了library,在library模块中控制日志输出使用的是
if (BuildConfig.DEBUG) {
logger.d("print %s", msg);
}
通常,在直接运行app即使用debug模式打包时, BuildConfig.DEBUG
应为true,而当发布release版本时, BuildConfig.DEBUG
自动为false。这样就可以完美地控制日志的输出。
但是,令人头疼的是,无论是debug还是release,library中的 BuildConfig.DEBUG
都是false,导致调试日志无法打印。
原因:默认情况下,应用模块会使用库的发布构建,即使在使用应用模块的调试构建类型时亦是如此。android developer 地址
解决方法
在库的 build.gradle
文件的 android 代码块内添加以下代码
android {
...
publishNonDefault true
}
在应用的 build.gradle 文件中修改依赖代码,使得应用在不同的模式下构建时使用库的不同构建类型
dependencies {
...
debugCompile project(path: ':library', configuration: 'debug')
releaseCompile project(path: ':library', configuration: 'release')
}