java - 仅将 Dagger 2 的依赖项注入(inject)到其中一种产品风格中

标签 java android dagger-2

我的应用程序包含两种产品风格:免费和专业版。我有一个为广告提供对象的 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/

相关文章:

Android 2.1 以编程方式卸载 SDCard

java - 如何在tts说话时停止语音识别?

android - 错误:找不到符号类BR

java - @Inject 注释如何知道在同一接口(interface)下实例化哪个具体类?

java - MyBatis 中如何选择动态 fetchSize

java - 为简单的支持 vector 机计算拉格朗日乘数

java - WL 12.2.1 和 12.1.3 上的 Jersey 2.x Web 应用程序

java - 转换对象类型

android - 在 Android 中实例化 HttpClient 时出现 IllegalArgumentException

android - 在我的例子中,Dagger 在模块中声明子组件