Ошибка IRepository cannot be provided without an @Provides-annotated method
Изучаю Dagger2, возникла ошибка error: [Dagger/MissingBinding] com.testtask.hotels.data.IRepository cannot be provided without an @Provides-annotated method.
RepositoryModule
@Module(includes = [NetworkModule::class])
@DisableInstallInCheck
abstract class RepositoryModule {
@Singleton
@Binds
abstract fun provideRepository(repository: RepositoryImpl): IRepository
}
RepositoryImpl
class RepositoryImpl @Inject constructor(
private val api: ApiService,
) : IRepository {
override suspend fun getHotels(): List<BaseHotelInfo> {
return api.getHotels()
}
override suspend fun getConcreteHotelInfo(hotelId: Int): FullHotelInfo {
return api.getConcreteHotel(hotelId)
}
}
AppComponent
@Component(modules = [RepositoryModule::class])
@Singleton
interface AppComponent {
fun inject(app: App)
fun inject(hotelsFragment: AllHotelsFragment)
fun inject(rootActivity: RootActivity)
}
RootActivity
@AndroidEntryPoint
class RootActivity : BaseActivity<RootViewModel>() {
companion object {
private const val TAG = "M_RootActivity"
}
override val layout: Int = R.layout.activity_root
override val viewModel: RootViewModel by viewModels()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
}
RootViewModel
@HiltViewModel
class RootViewModel @Inject constructor(
val repository: IRepository
): BaseViewModel() {
}
В чём может быть причина?