반응형
- Hilt 기반으로 Network Module을 구성했는데, 갑자기 제목과 같은 오류가 발생했다.
- 다음 함수가 문제였다.
@Provides
@Singleton
fun <T> provideApiService(retrofit: Retrofit, service: Class<T>): T =
retrofit.create(service)
- Hilt는 DI 그래프를 컴파일 타임에 생성하기 때문에, 어떤 타입을 주입할지 명확히알아야 한다.그런데 위처럼 <T>로 제네릭을 쓰면 어떤 타입인지 컴파일 시점에 알 수 없기 때문에 에러가 발생한 것.
- 아래처럼 Api 호출 관련 함수가 하나로 정리된 Interface를 지정해 주면 된다.
@Provides
@Singleton
fun provideApiService(retrofit: Retrofit): ApiService = retrofit.create(ApiService::class.java)
반응형