0

我试图在我的数据源类中注入一个带有 koin 的 contentProvider,但我找不到任何方法可以做到这一点。

这是我的数据源

class MyDataSource(private val application: Application, private val contentProvider: ContentResolver) : MyRepository {...}

和我的 koin 模块

single<MyRepository> {
        MyDataSource(get(), get())
    }

我收到了这个错误:

原因:org.koin.core.error.NoBeanDefFoundException:未找到“android.content.ContentResolver”的定义。检查您的模块定义。

4

1 回答 1

0

告诉 Koin 如何获得ContentResolver. 假设您在自定义Application(例如MyApplication)类中初始化模块:

private val module = module {

    single { this@MyApplication.contentResolver } // tell Koin this is your ContentResolver

    single<MyRepository> {
        MyDataSource(get(), get()) // now Koin knows how to get the content resolver here
    }
}
于 2020-07-27T10:28:19.190 回答