相关文章推荐
腼腆的香菇  ·  1 特殊函数 ...·  1 年前    · 
被表白的洋葱  ·  Data Catalog lineage ...·  1 年前    · 
温暖的上铺  ·  Linq ...·  1 年前    · 

Dagger2错误。[Dagger/MissingBinding] com.testtask.hotels.data.IRepository不能在没有@Provides-annotated方法的情况下提供。

0 人关注

我正在学习Dagger2,我遇到了一个错误。【替换代码0

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)
@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() {