2017-07-13 27 views
3

在我的項目中,我使用了基於不同buildConfigFields的不同配置,對於其中一些我不使用某些依賴關係。 所以我不想在特定的配置中有特定的依賴關係,這取決於buildConfigFields。動態Gradle編譯依賴不同的buildConfigFields

我該怎麼做類似以下的事情?

dependencies { 
    if (buildConfigField("String", "WHICH_MESSAGE_ENABLED") == "VALUE") { 
     compile "xxx.yyy.zz:1.0" 
    } else { 
     provided "xxx.yyy.zz:1.0" 
    } 
} 

回答

0

您可以使用defaultConfig如下:

def mBuildConfigFields 

android { 
    defaultConfig { 
     mBuildConfigFields = buildConfigFields 
    } 
} 

dependencies { 
    if (localBuildConfigFields.get("KEY").value == "VALUE") { 
     compile "xxx.yyy.zz:1.0" 
    } else { 
     provided "xxx.yyy.zz:1.0" 
    } 
} 

希望這有助於。

+0

不工作:/ 錯誤:無法獲取類型爲org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler的對象的未知屬性'loadDependency'。 –

+0

你可以分享你的build.gradle嗎? – Greaper

+0

我最初忘了def了:)謝謝它的作品! –