我的应用程序包含两种产品风格:免费和专业版。我有一个为广告提供对象的 ApplicationModule
,但只有免费版本需要此对象,因为专业版没有 com.google.android.gms:play- services-ads:8.3.0
依赖项。如何构建我的项目,以便仅在使用免费产品风格时 ApplicationModule
提供广告对象?
最佳答案
由于您有两种产品风格,我假设免费版本类位于“主”资源集之外的正确版本结构中。我假设您有另一个付费版本的资源集。
因此,在主源集中初始化 dagger 组件,但让 ApplicationModule 驻留在每个 flavor 源集中。该模块是提供程序,因此如果您想更改依赖项,您可以通过定义不同的提供程序来更改依赖项,即使两个源集(付费、非付费)都具有相同的 ApplicationModule。
关于java - 仅将 Dagger 2 的依赖项注入(inject)到其中一种产品风格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34033452/