3
대거가 내 엉덩이를 차고 있습니다.안드로이드 대거 @ 주사가 null
다음 레이아웃이 있습니다.
- 오브젝트 그래프에 주입되는 MainActivity.
- MainActivity @Injects는 MainPresenter 인터페이스입니다. 이는 구체적인 구현을 반환하는 MainModule을 통해 제공됩니다.
- 구체적인 MainPresenter 구현은 FileContentInteractor 인터페이스를 사용합니다. 이는 구체적인 FileContentInteractor 구현을 반환하는 InteractorModule에서 제공됩니다. 지금 모든 것이 잘 될 때까지 위로
InteractorModule.class이 포함되어 있기 때문에
구체적인 FileContentInteractor 구현체는 @Inject를 사용하여 일부 멤버 변수를 주입합니다. 이 멤버 변수는 각각의 모듈을 통해 구체적인 구현을 제공하는 모든 인터페이스입니다.
예제는 @Inject ThreadExecutor threadExecutor입니다. 나는 이것이 제공 될 것이라고 생각했다.
- InteractorModule에는 ExecutorModule.class가 포함됩니다.
- ExecutorModule.class @는 ThreadExecutor의 구체적인 구현을 TaasExecutor 객체 형식으로 제공합니다.
- TaskExecutor 개체에 주입 된 종속성이 없습니다.
내 앱을 실행하고 MainActivity가 열리면 다음과 같은 현상이 발생합니다.
- MainActivity는 MainPresenter 구현 방법을 호출합니다.
- MainPresenter에 FileContentInteractor 구현이 있고 그것에 대한 메서드를 호출합니다. - 작동
- FileContentInteractor 구현의 메서드는 ThreadExecutor 구현 (@Injected가 멤버 변수 임)에서 메서드를 호출하려고합니다. @Injected ThreadExecutor 구현이 null이기 때문에 실패했습니다.
아무도 도와 줄 수 있습니까? 좋아