我正在构建一个使用
Android库作为主要代码源的应用程序.然后我有多个使用该库的应用程序;这些应用程序将具有相同的代码,但具有不同的配置字段,例如端点等.
为了实现这一点,我想我可以在我的库的build.gradle文件中有一个buildConfigField,然后使用相同的名称在我的应用程序的build.gradle中覆盖该值,如下所示:
库中的build.gradle:
buildConfigField "String","API_BASE_URL","\"http://arandomapibaseurl.com\""
app中的build.gradle:
buildConfigField "String","\"http://myrealapi.com\""
有关如何实现这一目标的任何想法?
谢谢!
解决方法
不幸的是,你无法覆盖构建配置.您可以覆盖使用resValue指定的资源值.该应用程序可以覆盖库,而不是相反.你只需要一个上下文来将它们拉出来,你就可以在app启动时将它们粘贴到一个java对象中,你可以将它作为单例或其他任何东西共享.
我过去经常使用这个技巧让应用程序拉入库并覆盖其默认值.你可以阅读它here.