2017-02-22 14 views
1

При работе на андроид приложения с помощью dagger2 для впрыскивают зависимости при определении кинжала компонент я получаю эту ошибкуSingleton компонент не может зависеть от контекстных компонентов

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(); 
} 

кодекс componeent, в котором я, получаю ошибку является:

@Singleton 
@Component(modules = {RemoteDataModule.class}, dependencies = {WebserviceComponent.class}) 
public interface RemoteDataSourceComponent { 
     RemoteDataSource providesRemoteDataSource(); 
} 

Почему получить эту ошибку и как ее решить.

+0

'RemoteDataSourceComponent' должен иметь [настраиваемую область] (http://frogermcs.github.io/dependency-injection-with-dagger-2-custom-scopes/). – azizbekian

ответ

1

WebserviceComponent и RemoteDataSourceComponent не могут иметь такой же объем. В области кинжалов определяют smth как жизненный цикл, а @Singleton - самый широкий. Поэтому, если RemoteDataSourceComponent зависит от WebserviceComponent, это означает, что WebserviceComponent может жить дольше.