Я использую архитектуру MVVM для своего приложения Android и только что начал с Koin. Когда я пытаюсь ввести более одного параметра, начинают появляться проблемы. На данный момент у меня есть класс Repository
, который использует:
RESTApi
для выполнения веб-вызовов. RestProvider
использует SocketProvider
в качестве параметра конструктора для этого Utils(Context)
в качестве помощника для получения некоторой базовой c информации (appVersion, IMEI et c)
My appModule
{
single<RepositoryApi> {
Repository(
Utils(androidContext())
\\ RestProvider(SocketProvider()) Here I get problems
)
}
single<RestApi> { RestProvider(get() as SocketProvider) }
single<SocketApi> { SocketProvider() }
single<UtilsApi> { Utils(androidContext()) }
viewModel { LoginViewModel(get()) }
}
Когда я использую Utils
, только все работает нормально, когда я добавляю RestProvider
, я получаю исключение:
Причина: org.koin.core.error .InstanceCreationException: Не удалось создать экземпляр для [type: Single, primary_type: 'com.etrans.ntsdriver.provider.repository.RepositoryApi'] в org.koin.core.instance.DefinitionInstance.create (DefinitionInstance.kt: 61) в org .koin.core.instance.SingleDefinitionInstance.get (SingleDefinitionInstance.kt: 40) в org.koin.core.definition.BeanDefinition.resolveInstance (BeanDefinition.kt: 70) в org.koin.core.scope.Scope.resolvest .kt: 165) at org.koin.core.scope.S c
Я понимаю, что мне чего-то не хватает, но я не нашел учебников или примеров, объясняющих такие случаи.
Мои зависимости от gradle, связанные с Koin (возможно, будут полезно):
// Koin for Android - ViewModel features
implementation "org.koin:koin-android-viewmodel:$koin_version"
implementation "org.koin:koin-java:$koin_version"
testImplementation "org.koin:koin-test:$koin_version"
androidTestImplementation "org.koin:koin-test:$koin_version"
Заранее благодарен за любую помощь