【Android】解決 AndroidStudio 中 gradle 的 buildTypes 配置不生效問題

在開發過程當中,咱們喜歡把開發和現網壞境的配置區別開,好比IP、端口等。gradle也很好地給咱們提供了buildTypes的功能,以下所示:android

buildTypes {

    debug {
        buildConfigField "String", "httpServerIp", "\"10.10.19.15\""
        buildConfigField "String", "fileServerIp", "\"http://10.10.19.15:8099/\""
        buildConfigField "int", "httpPort", "8020"
    }

    release {
        buildConfigField "String", "httpServerIp", "\"10.10.19.18\""
        buildConfigField "String", "fileServerIp", "\"http://10.10.19.18:8099/\""
        buildConfigField "int", "httpPort", "8020"
    }
}複製代碼

這個功能在主項目中使用的話是沒有什麼問題的,但若是是依賴的Module項目中的話,無論你是debug仍是release構建,配置的信息都會是release中的,這給我形成了很大的困擾。gradle

解決方法:ui

Library:spa

android {
    publishNonDefault true
}複製代碼

App:debug

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

這樣的話Library項目每次編譯的時候會同時生成對應的debug和release版本,主項目根據編譯類型去引用。code

相關文章
相關標籤/搜索