覆盖应用程序中的库buildConfigFields

时间:2016-02-26 22:46:48

标签: android gradle build android-gradle

我正在构建一个使用Android库作为主要代码源的应用程序。然后我有多个使用该库的应用程序;这些应用程序将具有相同的代码,但具有不同的配置字段,例如端点等。

为了实现这一目标,我想我的库buildConfigField文件中可以有一个build.gradle,然后在我的应用build.gradle中覆盖该值使用相同的名称,如下所示:

库中

build.gradle:

buildConfigField "String", "API_BASE_URL", "\"http://arandomapibaseurl.com\"" 
在app中

build.gradle:

buildConfigField "String", "API_BASE_URL", "\"http://myrealapi.com\"" 

关于如何实现这一目标的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:9)

不幸的是,您无法覆盖构建配置。您可以覆盖使用resValue指定的资源值。该应用程序可以覆盖库,而不是相反。你只需要一个上下文来将它们拉出来,你可以在app启动时将它们粘贴到一个java对象中,你可以将它作为一个单独的东西或其他任何东西共享。

我过去经常使用这个技巧让应用程序拉入库并覆盖其默认值。你可以阅读它here