>Java >java지도 시간 >Dagger 2 오류: '제공할 수 없습니다...' – 종속성 주입 문제를 해결하는 방법은 무엇입니까?

Dagger 2 오류: '제공할 수 없습니다...' – 종속성 주입 문제를 해결하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-20 18:08:13796검색

Dagger 2 Error:

Dagger 2 종속성 제공 오류 문제 해결: "제공할 수 없습니다..."

문제:

Dagger 2 액세스를 시도할 때 "com.example.MyDependency를 제공할 수 없습니다. [...]" 오류가 반환됩니다. 의존성. 이 오류는 Dagger에 지정된 종속성을 생성하거나 제공하는 데 필요한 메커니즘이 부족함을 나타냅니다.

설명:

오류 메시지에서 알 수 있듯이 Dagger에는 두 가지 방법 중 하나가 필요합니다. 종속성 제공:

  • @Inject 주석이 달린 클래스 생성자
  • 구성 요소 모듈 중 하나에서 @Provides로 주석이 달린 메서드

수정:

이 문제를 해결하려면 다음 사항을 확인하세요. 다음 중 하나:

@Inject 생성자

  1. 사용하려는 클래스에 @Inject 주석 생성자를 추가합니다. dependency.

    • 예:

      class MyDependency {
          @Inject
          MyDependency() { /**/ }
      }

@Provides Method in a Module

  1. 모듈을 만들고 주석이 달린 @Provides를 추가하세요. 원하는 종속성의 인스턴스를 반환하는 메서드
  2. 구성 요소에 모듈을 추가합니다. 선언.

    • 예:

      @Module
      class MyModule {
          @Provides
          MyDependency provideMyDependency() {
              return new MyDependency();
          }
      }
      
      @Component(modules = MyModule.class)
      interface MyComponent {
          MyDependency myDependency();
      }

추가 참고 사항:

  • 제공된 내용을 확인하세요. 인터페이스나 한정자를 포함하여 종속성이 정확히 일치하도록 요청했습니다.
  • 다른 클래스를 확장하거나 구현하는 경우 @Binds를 사용하여 특정 구현을 인터페이스나 슈퍼클래스에 매핑하는 것을 고려하세요.

위 내용은 Dagger 2 오류: '제공할 수 없습니다...' – 종속성 주입 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.