仅将Dagger 2的依赖项注入其中一种产品风格

时间:2015-12-02 01:34:29

标签: java android dagger-2

我的应用程序包含两种产品口味:free和pro。我有ApplicationModule提供广告对象,但只有免费版本才需要此对象,因为专业版没有com.google.android.gms:play-services-ads:8.3.0依赖项。如何构建我的项目,以便仅在使用免费产品风格时ApplicationModule提供广告对象?

1 个答案:

答案 0 :(得分:1)

由于你有两种产品口味,我假设免费版本的版本在正确的版本结构中,在主要版本之外。资源集。我假设您有另一个付费版本的资源集。

因此,初始化主源集内的dagger组件,但是ApplicationModule驻留在每个flavor源集中。该模块是提供者,因此如果您想要更改依赖关系,您可以通过定义不同的提供者,即使两个源集(付费,非付费)在每个提供者中都具有相同的ApplicationModule。