1. 程式人生 > >解決依賴庫中BuildConfig.DEBUG的值總為False的問題

解決依賴庫中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中,如果你的專案A依賴另外一個module B,而你也想通過BuildConfig.DEBUG來控制日誌等,很遺憾,It not work! 
不論你是debug還是release,BuildConfig.DEBUG的值都是false!
因為這個令人頭疼的問題,我參考了各種辦法都不行! 
首先想到的是通過 
buildConfigField “boolean”, “IS_DEBUG”, “true” 
設定自定義引數來判斷,結果還是不行。

最後在android官網上找到了解決方法

解決方法如下: 
Library專案的build.gradle中
android {
    publishNonDefault true
}
App主專案中
dependencies {
    releaseCompile project(path: ':library', configuration: 'release')
    debugCompile project(path: ':library', configuration: 'debug')
}
其中library是依賴的module名字