在工作的同时Android应用程序使用Dagger2用于定义时的依赖注入Dagger组件我收到此错误
Error:(13, 1) error: This @Singleton component cannot depend on scoped components:
@Singleton com.eaxample.app.DaggerAndroid.networkhandler.WebserviceComponent
我的组件代码在这里:
@Singleton
@Component(modules = {WebserviceModule.class}, dependencies = {ApplicationComponent.class})
public interface WebserviceComponent {
WebserviceHelper providesWebserviceHelper();
}
我收到错误的组件代码是:
@Singleton
@Component(modules = {RemoteDataModule.class}, dependencies = {WebserviceComponent.class})
public interface RemoteDataSourceComponent {
RemoteDataSource providesRemoteDataSource();
}
为什么我会收到此错误以及如何解决此问题?
虽然 dmitriyzaitsev 的答案解释了为什么会出现错误,但解决方法如下:
-
定义您自己的作用域(它实际上也表现得像单例作用域)。例如。一个名为RemoteDataScope.java
:
@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface RemoteDataScope {
}
-
使用新的范围,例如@RemoteDataScope
代替@Singleton
在你的RemoteDataSourceComponent
:
@RemoteDataScope
@Component(modules = {RemoteDataModule.class}, dependencies = {WebserviceComponent.class})
public interface RemoteDataSourceComponent {
RemoteDataSource providesRemoteDataSource();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)