覆盖应用程序中的库buildConfigFields

Jor*_*rge 6 android build gradle android-gradle-plugin

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

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

库中的build.gradle:

buildConfigField "String", "API_BASE_URL", "\"http://arandomapibaseurl.com\"" 
Run Code Online (Sandbox Code Playgroud)

app中的build.gradle:

buildConfigField "String", "API_BASE_URL", "\"http://myrealapi.com\"" 
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Dou*_*son 10

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

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