如何使用新的gradle实现在Android特定模块中设置Dagger私有依赖?

时间:2017-10-24 09:42:37

标签: android android-gradle dagger-2 dagger

我正在将项目的gradle设置迁移到新的apiimplementation配置,而不是现在的deprecated compile。我试图尽可能多地使用implementation,但我遇到了Dagger的障碍。

我有一个Android库模块,我在其中设置了一个带有一些私有依赖项的Dagger模块。其中一个是RxLocation单身:

@Singleton
@Provides
RxLocation provideRxLocation(@LocationContext Context context) {
    return new RxLocation(context);
}

此依赖项仅在同一个dagger模块中用作对我实际想要公开的事物的依赖。例如:

@Singleton
@Provides
Observable<Location> provideLocationUpdates(RxLocation rxLocation, LocationRequest locationRequest) {
    //build observable with RxLocation here
}

我不希望RxLocation“泄漏”到其他模块,因此我尝试使用implementation配置导入它。但是,Dagger会在我的app模块中生成LocationModule_ProvideRxLocationFactory,显然会在那里导入RxLocation,从而破坏构建。

除了在我的模块中手动设置RxLocation实例(没有匕首注释)之外,我能做些什么吗?

0 个答案:

没有答案