Java (Android)不同风格的运行时依赖项管理
我有一个Android应用程序 我想定义我的应用程序的风格。由于法律原因,这个风格将不包括我的主要风格中的一些依赖项。格拉德尔不仅能做到这一点,而且看起来确实如此 然而,我不明白的是如何在运行时处理这些缺失的依赖项。这将如何影响我所有的地方:Java (Android)不同风格的运行时依赖项管理,java,android,gradle,dependencies,dependency-management,Java,Android,Gradle,Dependencies,Dependency Management,我有一个Android应用程序 我想定义我的应用程序的风格。由于法律原因,这个风格将不包括我的主要风格中的一些依赖项。格拉德尔不仅能做到这一点,而且看起来确实如此 然而,我不明白的是如何在运行时处理这些缺失的依赖项。这将如何影响我所有的地方: import package.which.is.only.available.sometimes. 当我尝试调用包的方法时,如何测试包的存在性?我想我可以用它来捕捉任何异常,但这似乎是一个重大的黑客 如有任何意见,将不胜感激:) 由于法律原因,这个风格将
import package.which.is.only.available.sometimes.
当我尝试调用包的方法时,如何测试包的存在性?我想我可以用它来捕捉任何异常,但这似乎是一个重大的黑客
如有任何意见,将不胜感激:)
由于法律原因,这个风格将不包括我的主要风格中的一些依赖项
我不知道你能轻易地根据口味排除依赖性。您可以使用flavornameCompile
(其中flavorname
是您的风味名称)按风味添加依赖项
这将如何影响我所有的位置:import package.which.is.only.available.有时
如果在main
sourceset中,代码将无法编译,因为类将不存在
当我尝试调用包的方法时,如何测试包的存在性?我想我可以用它来捕捉任何异常,但这似乎是一个重大的黑客
将代码移到单独的风格中。您的main
sourceset将包含与这两种分发场景真正相同的代码,而不引用条件依赖项。一种风格将包含依赖项和使用它们的代码;另一种味道就不行了
例如,假设您的两个分发场景是Play Store和从Web站点直接下载,条件依赖性是Play Services框架中的应用内购买(IAP)内容。您将拥有一个带有依赖项(
googleCompile
)的google
风格,其源代码集将使用iapapi。您将拥有一个独立的标准风格,可以做其他事情(例如,使用PayPal)。main
sourceset每当需要执行与应用内购买相关的操作时,都会委托给InAppPurchaseStrategy
类。该类将有两个独立的实现,每种风格一个(在main
本身中没有),调整为使用适合该风格的支付工具。好的-我理解。我希望能有一个更优雅(神奇)的解决方案来解决我的问题,但至少你的建议有效。