아주 핵심적인 질문입니다!
EntryPoint 인터페이스를 통해 획득하려는 DI 객체(헬퍼, 매니저 등)는 실제로 아래 두 방법 중 하나로 Hilt 그래프에 '제공'되어 있어야 합니다.
@Inject를 명시하고@ActivityScoped
public class MessageHelper {
@Inject
public MessageHelper(@ActivityContext Context context) { ... }
}
@EntryPoint
@InstallIn(ActivityComponent.class)
public interface MyEntryPoint {
MessageHelper getHelper();
}
@Module
@InstallIn(ActivityComponent.class)
public class HelperModule {
@Provides
@ActivityScoped
public MessageHelper provideHelper(@ActivityContext Context context) {
return new MessageHelper(context);
}
}
@EntryPoint
@InstallIn(ActivityComponent.class)
public interface MyEntryPoint {
MessageHelper getHelper();
}
정리:
EntryPoint 인터페이스는 단지 “수동 획득 진입점”
실제로 제공하려는 객체는
출처
[1] Hilt를 사용한 종속 항목 삽입 - Android Developers https://developer.android.com/training/dependency-injection/hilt-android?hl=ko
[2] Android DI 라이브러리 Dagger-Hilt 소개와 사용법 https://fanxy0n.tistory.com/29