Loading

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')
}
posted @ 2018-04-23 11:14  辉灬  阅读(502)  评论(0编辑  收藏  举报