Я пытаюсь сделать проект в KMP, однако приложение в версии Android работает как очарование, но версия iOS сбоятся мгновенно. < /p>
Вот (есть ( 50% полностью) ошибка, сгенерированная XCode. Я запускаю приложение из Xcode, потому что у меня есть некоторые зависимости кокопод для карт: < /p>
[INFO] [Koin] No Compose Koin context setup, taking default. Use KoinContext(), KoinAndroidContext() or KoinApplication() function to setup or create Koin context and avoid such message.
[DEBUG] [Koin] | > parameters DefinitionParameters[]
[DEBUG] [Koin] |- ? t:'com.cdm.janaza.core.presentation.navigation.NavigationViewModel' - q:'null' look in injected parameters
[DEBUG] [Koin] | (+) '[Factory: 'com.cdm.janaza.core.presentation.navigation.NavigationViewModel']'
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.BottomBarService'...
[DEBUG] [Koin] | (+) '[Singleton: 'com.cdm.janaza.core.data.service.BottomBarServiceImpl',binds:com.cdm.janaza.core.domain.service.BottomBarService]'
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.BottomBarService' in 0.017 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.AuthenticationService'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.AuthenticationService' in 0.004 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.ToastService'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.ToastService' in 0.002 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.BottomSheetService'...
[DEBUG] [Koin] | (+) '[Singleton: 'com.cdm.janaza.core.data.service.BottomSheetServiceImpl',binds:com.cdm.janaza.core.domain.service.BottomSheetService]'
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.BottomSheetService' in 0.013 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.PreferencesDataStoreRepository'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.PreferencesDataStoreRepository' in 0.002 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.PrayerService'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.PrayerService' in 0.002 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.UserService'...
[DEBUG] [Koin] | (+) '[Singleton: 'com.cdm.janaza.core.data.service.UserServiceImpl',binds:com.cdm.janaza.core.domain.service.UserService]'
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.FirebaseUserRepository'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.FirebaseUserRepository' in 0.002 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.FirebasePrayerRepository'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.FirebasePrayerRepository' in 0.002 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.UserService' in 0.045 ms
[DEBUG] [Koin] | > parameters DefinitionParameters[]
[DEBUG] [Koin] |- ? t:'com.cdm.janaza.feature_main.presentation.screen.home.HomeViewModel' - q:'null' look in injected parameters
[DEBUG] [Koin] | (+) '[Factory: 'com.cdm.janaza.feature_main.presentation.screen.home.HomeViewModel']'
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.AuthenticationService'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.AuthenticationService' in 0.003 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.PrayerService'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.PrayerService' in 0.002 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.OverlayService'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.OverlayService' in 0.002 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.PreferencesDataStoreRepository'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.PreferencesDataStoreRepository' in 0.003 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.BottomSheetService'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.BottomSheetService' in 0.003 ms
[ERROR] [Koin] * Instance creation error : could not create instance for '[Factory: 'com.cdm.janaza.feature_main.presentation.screen.home.HomeViewModel']': kotlin.NullPointerException[kotlin.Exception]
[DEBUG] [Koin] | a t 0 J a n a z a . d e b u g . d y l i b 0 x 1 1 0 0 e 7 7 9 7 k f u n : k o t l i n . E x c e p t i o n # & l t ; i n i t & g t ; ( k o t l i n . S t r i n g ? ; k o t l i n . T h r o w a b l e ? ) { } + 1 2 3 < b r / > a t 1 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 2 e c 4 b k f u n : o r g . k o i n . c o r e . e r r o r . I n s t a n c e C r e a t i o n E x c e p t i o n # & l t ; i n i t & g t ; ( k o t l i n . S t r i n g ; k o t l i n . E x c e p t i o n ) { } + 1 2 3 < b r / > a t 2 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 3 0 0 7 7 k f u n : o r g . k o i n . c o r e . i n s t a n c e . I n s t a n c e F a c t o r y # c r e a t e ( o r g . k o i n . c o r e . i n s t a n c e . R e s o l u t i o n C o n t e x t ) { } 1 : 0 + 1 7 0 3 < b r / > a t 3 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 2 f 8 a 7 k f u n : o r g . k o i n . c o r e . i n s t a n c e . F a c t o r y I n s t a n c e F a c t o r y # g e t ( o r g . k o i n . c o r e . i n s t a n c e . R e s o l u t i o n C o n t e x t ) { } 1 : 0 + 1 0 3 < b r / > a t 4 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 a 4 6 7 k f u n : o r g . k o i n . c o r e . i n s t a n c e . I n s t a n c e F a c t o r y # g e t ( o r g . k o i n . c o r e . i n s t a n c e . R e s o l u t i o n C o n t e x t ) { } 1 : 0 - t r a m p o l i n e + 6 7 < b r / > a t 5 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 3 a c 9 f k f u n : o r g . k o i n . c o r e . r e g i s t r y . I n s t a n c e R e g i s t r y # r e s o l v e I n s t a n c e ( o r g . k o i n . c o r e . q u a l i f i e r . Q u a l i f i e r ? ; k o t l i n . r e f l e c t . K C l a s s & l t ; * & g t ; ; o r g . k o i n . c o r e . q u a l i f i e r . Q u a l i f i e r ; o r g . k o i n . c o r e . i n s t a n c e . R e s o l u t i o n C o n t e x t ) { 0 § & l t ; k o t l i n . A n y ? & g t ; } 0 : 0 ? + 3 4 3 < b r / > a t 6 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 3 7 5 7 k f u n : o r g . k o i n . c o r e . s c o p e . S c o p e . r e s o l v e F r o m R e g i s t r y # i n t e r n a l + 3 2 3 < b r / > a t 7 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 2 b b 7 k f u n : o r g . k o i n . c o r e . s c o p e . S c o p e . r e s o l v e F r o m C o n t e x t # i n t e r n a l + 1 5 0 3 < b r / > a t 8 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 1 f 1 f k f u n : o r g . k o i n . c o r e . s c o p e . S c o p e . s t a c k P a r a m e t e r s C a l l # i n t e r n a l + 8 7 1 < b r / > a t 9 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 1 b 6 f k f u n : o r g . k o i n . c o r e . s c o p e . S c o p e . r e s o l v e I n s t a n c e # i n t e r n a l + 8 6 7 < b r / > a t 1 0 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 1 5 4 7 k f u n : o r g . k o i n . c o r e . s c o p e . S c o p e . r e s o l v e # i n t e r n a l + 2 2 7 1 < b r / > a t 1 1 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 0 c 3 3 k f u n : o r g . k o i n . c o r e . s c o p e . S c o p e # g e t W i t h P a r a m e t e r s ( k o t l i n . r e f l e c t . K C l a s s & l t ; * & g t ; ; o r g . k o i n . c o r e . q u a l i f i e r . Q u a l i f i e r ? ; o r g . k o i n . c o r e . p a r a m e t e r . P a r a m e t e r s H o l d e r ? ) { 0 § & l t ; k o t l i n . A n y ? & g t ; } 0 : 0 + 1 5 9 < b r / > a t 1 2 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 d 2 0 3 k f u n : o r g . k o i n . v i e w m o d e l . f a c t o r y . K o i n V i e w M o d e l F a c t o r y # c r e a t e ( k o t l i n . r e f l e c t . K C l a s s & l t ; 0 : 0 & g t ; ; a n d r o i d x . l i f e c y c l e . v i e w m o d e l . C r e a t i o n E x t r a s ) { 0 § & l t ; a n d r o i d x . l i f e c y c l e . V i e w M o d e l & g t ; } 0 : 0 + 4 1 1 < b r / > a t 1 3 J a n a z a . d e b u g . d y l i b 0 x 1 1 0 e c f a c 7 k f u n : a n d r o i d x . l i f e c y c l e . V i e w M o d e l P r o v i d e r . F a c t o r y # c r e a t e ( k o t l i n . r e f l e c t . K C l a s s & l t ; 0 : 0 & g t ; ; a n d r o i d x . l i f e c y c l e . v i e w m o d e l . C r e a t i o n E x t r a s ) { 0 § & l t ; a n d r o i d x . l i f e c y c l e . V i e w M o d e l & g t ; } 0 : 0 - t r a m p o l i n e + 1 1 5 < b r / > a t 1 4 J a n a z a . d e b u g . d y l i b 0 x 1 1 0 e c f 2 1 3 k f u n : a n d r o i d x . l i f e c y c l e . v i e w m o d e l # c r e a t e V i e w M o d e l ( a n d r o i d x . l i f e c y c l e . V i e w M o d e l P r o v i d e r . F a c t o r y ; k o t l i n . r e f l e c t . K C l a s s & l t ; 0 : 0 & g t ; ; a n d r o i d x . l i f e c y c l e . v i e w m o d e l . C r e a t i o n E x t r a s ) { 0 § & l t ; a n d r o i d x . l i f e c y c l e . V i e w M o d e l & g t ; } 0 : 0 + 1 3 1 < b r / > a t 1 5 J a n a z a . d e b u g . d y l i b 0 x 1 1 0 e c b 3 8 7 k f u n : a n d r o i d x . l i f e c y c l e . v i e w m o d e l . V i e w M o d e l P r o v i d e r I m p l # g e t V i e w M o d e l ( k o t l i n . r e f l e c t . K C l a s s & l t ; 0 : 0 & g t ; ; k o t l i n . S t r i n g ) { 0 § & l t ; a n d r o i d x . l i f e c y c l e . V i e w M o d e l & g t ; } 0 : 0 + 1 1 6 3 < b r / > a t 1 6 J a n a z a . d e b u g . d y l i b 0 x 1 1 0 e c b 5 f 7 k f u n : a n d r o i d x . l i f e c y c l e . v i e w m o d e l . V i e w M o d e l P r o v i d e r I m p l # g e t V i e w M o d e l $ d e f a u l t ( k o t l i n . r e f l e c t . K C l a s s & l t ; 0 : 0 & g t ; ; k o t l i n . S t r i n g ? ; k o t l i n . I n t ) { 0 § & l t ; a n d r o i d x . l i f e c y c l e . V i e w M o d e l & g t ; } 0 : 0 + 3 1 1 < b r / > a t 1 7 J a n a z a . d e b u g . d y l i b 0 x 1 1 0 e c d f d b k f u n : a n d r o i d x . l i f e c y c l e . V i e w M o d e l P r o v i d e r # g e t ( k o t l i n . r e f l e c t . K C l a s s & l t ; 0 : 0 & g t ; ) { 0 § & l t ; a n d r o i d x . l i f e c y c l e . V i e w M o d e l & g t ; } 0 : 0 + 1 8 3 < b r / > a t 1 8 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 c 4 8 7 k f u n : o r g . k o i n . v i e w m o d e l # r e s o l v e V i e w M o d e l ( k o t l i n . r e f l e c t . K C l a s s & l t ; 0 : 0 & g t ; ; a n d r o i d x . l i f e c y c l e . V i e w M o d e l S t o r e ; k o t l i n . S t r i n g ? ; a n d r o i d x . l i f e c y c l e . v i e w m o d e l . C r e a t i o n E x t r a s ; o r g . k o i n . c o r e . q u a l i f i e r . Q u a l i f i e r ? ; o r g . k o i n . c o r e . s c o p e . S c o p e ; k o t l i n . F u n c t i o n 0 & l t ; o r g . k o i n . c o r e . p a r a m e t e r . P a r a m e t e r s H o l d e r & g t ; ? ) {0§}0:0 + 711
at 19 Janaza.debug.dylib 0x10fd88da7 kfun:com.cdm.janaza.feature_main.presentation.screen.home#Home(androidx.compose.foundation.layout.PaddingValues;kotlin.Function0;kotlin.Function1;androidx.compose.runtime.Composer?;kotlin.Int){} + 5899
at 20 Janaza.debug.dylib 0x10fc7cc8f kfun:com.cdm.janaza.core.presentation.navigation.navHost.navGraphBuilder.screen.home$lambda$5#internal + 375
at 21 Janaza.debug.dylib 0x10fc7cea7 kfun:com.cdm.janaza.core.presentation.navigation.navHost.navGraphBuilder.screen.$home$lambda$5$FUNCTION_REFERENCE$2.invoke#internal + 179
at 22 Janaza.debug.dylib 0x10fc7d06f kfun:com.cdm.janaza.core.presentation.navigation.navHost.navGraphBuilder.screen.$home$lambda$5$FUNCTION_REFERENCE$2.$
invoke(androidx.compose.animation.AnimatedContentScope;androidx.navigation.NavBackStackEntry;androidx.compose.runtime.Composer;kotlin.Int){}#internal + 231
at 23 Janaza.debug.dylib 0x110247873 kfun:kotlin.Function4#invoke(1:0;1:1;1:2;1:3){}1:4-trampoline + 131
at 24 Janaza.debug.dylib 0x1105e84b3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(kotlin.Any?;kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 687
at 25 Janaza.debug.dylib 0x1105f605b kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#$
invoke(kotlin.Any?;kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any?(kotlin.Any?;kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Any?){}kotlin.Any? + 235
at 26 Janaza.debug.dylib 0x110247873 kfun:kotlin.Function4#invoke(1:0;1:1;1:2;1:3){}1:4-trampoline + 131
at 27 Janaza.debug.dylib 0x111c1e3f7 kfun:androidx.navigation.compose.NavHost$lambda$41$lambda$40#internal + 659
at 28 Janaza.debug.dylib 0x111c22423 kfun:androidx.navigation.compose.$NavHost$lambda$41$lambda$40$FUNCTION_REFERENCE$37.invoke#internal + 119
at 29 Janaza.debug.dylib 0x111c22577 kfun:androidx.navigation.compose.$NavHost$lambda$41$lambda$40$FUNCTION_REFERENCE$37.$
invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 30 Janaza.debug.dylib 0x110239d67 kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 31 Janaza.debug.dylib 0x1105e7d9b kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 32 Janaza.debug.dylib 0x1105f5e3f kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#$
invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any?(androidx.compose.runtime.Composer;kotlin.Any?){}kotlin.Any? + 163
at 33 Janaza.debug.dylib 0x110239d67 kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 34 Janaza.debug.dylib 0x1104d3097 kfun:androidx.compose.runtime#CompositionLocalProvider(androidx.compose.runtime.ProvidedValue;kotlin.Function2;androidx.compose.runtime.Composer?;kotlin.Int){} + 611
at 35 Janaza.debug.dylib 0x110de9abf kfun:androidx.compose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider#internal + 2963
at 36 Janaza.debug.dylib 0x110deed37 kfun:androidx.compose.runtime.saveable.SaveableStateHolder#SaveableStateProvider(kotlin.Any;kotlin.Function2;androidx.compose.runtime.Composer?;kotlin.Int){}-trampoline + 123
at 37 Janaza.debug.dylib 0x111c25d5b kfun:androidx.navigation.compose.SaveableStateProvider#internal + 1547
at 38 Janaza.debug.dylib 0x111c26673 kfun:androidx.navigation.compose.LocalOwnersProvider$lambda$0#internal + 475
at 39 Janaza.debug.dylib 0x111c26a3f kfun:androidx.navigation.compose.$LocalOwnersProvider$lambda$0$FUNCTION_REFERENCE$0.invoke#internal + 119
at 40 Janaza.debug.dylib 0x111c26b93 kfun:androidx.navigation.compose.$LocalOwnersProvider$lambda$0$FUNCTION_REFERENCE$0.$
invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 41 Janaza.debug.dylib 0x110239d67 kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.runtime.BroadcastFrameClock@da805e8, StandaloneCoroutine{Cancelling}@5daf340, FlushCoroutineDispatcher@db00f28]
at 0 Janaza.debug.dylib 0x1100ed6ab kfun:kotlin.Throwable#(kotlin.String?){} + 99
at 1 Janaza.debug.dylib 0x1100e7707 kfun:kotlin.Exception#(kotlin.String?){} + 95
at 2 Janaza.debug.dylib 0x1100e78d7 kfun:kotlin.RuntimeException#(kotlin.String?){} + 95
at 3 Janaza.debug.dylib 0x11036009f kfun:kotlinx.coroutines.internal.DiagnosticCoroutineContextException#(kotlin.coroutines.CoroutineContext){} + 175
at 4 Janaza.debug.dylib 0x110331197 kfun:kotlinx.coroutines.internal#handleUncaughtCoroutineException(kotlin.coroutines.CoroutineContext;kotlin.Throwable){} + 667
at 5 Janaza.debug.dylib 0x1102bab27 kfun:kotlinx.coroutines#handleCoroutineException(kotlin.coroutines.CoroutineContext;kotlin.Throwable){} + 563
at 6 Janaza.debug.dylib 0x1102ae053 kfun:kotlinx.coroutines.StandaloneCoroutine.handleJobException#internal + 167
at 7 Janaza.debug.dylib 0x11036833f kfun:kotlinx.coroutines.JobSupport#handleJobException(kotlin.Throwable){}kotlin.Boolean-trampoline + 59
at 8 Janaza.debug.dylib 0x1102c599b kfun:kotlinx.coroutines.JobSupport.finalizeFinishingState#internal + 1227
at 9 Janaza.debug.dylib 0x1102ce3cb kfun:kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath#internal + 2447
at 10 Janaza.debug.dylib 0x1102cda03 kfun:kotlinx.coroutines.JobSupport.tryMakeCompleting#internal + 755
at 11 Janaza.debug.dylib 0x1102cd50b kfun:kotlinx.coroutines.JobSupport#makeCompletingOnce(kotlin.Any?){}kotlin.Any? + 451
at 12 Janaza.debug.dylib 0x1102aa277 kfun:kotlinx.coroutines.AbstractCoroutine#resumeWith(kotlin.Result){} + 203
at 13 Janaza.debug.dylib 0x11023962f kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result){}-trampoline + 99
at 14 Janaza.debug.dylib 0x1100f2ca3 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result){} + 1295
at 15 Janaza.debug.dylib 0x11023962f 0xc353ffffffffffff 0x0 + -4371869338269908993
Caused by: kotlin.NullPointerException
at 0 Janaza.debug.dylib 0x1100ed823 kfun:kotlin.Throwable#(){} + 75
at 1 Janaza.debug.dylib 0x1100e7693 kfun:kotlin.Exception#(){} + 67
at 2 Janaza.debug.dylib 0x1100e7863 kfun:kotlin.RuntimeException#(){} + 67
at 3 Janaza.debug.dylib 0x1100e7a33
< /code>
Вот моя настройка коина: < /p>
fun initKoin(config: KoinAppDeclaration? = null) {
startKoin {
printLogger(Level.DEBUG)
config?.invoke(this)
modules(
appModule,
sharedRepositoryModule,
viewModelModule
)
}
}
< /code>
mainviewcontroller: < /p>
fun MainViewController() = ComposeUIViewController(
configure = {
initKoin()
Firebase.initialize()
}
) {
App()
}
< /code>
my viewmodelmodule: < /p>
val viewModelModule = module {
viewModelOf(::HomeViewModel)
}
< /code>
my appmodule: < /p>
val appModule = module {
single { Firebase.firestore }
single { Firebase.messaging }
single { Firebase.auth }
single { createHttpClient() }
single(named("pray")) { providePrayerCollection(get()) }
single(named("user")) { provideUserCollection(get()) }
singleOf(::OverlayServiceImpl).bind()
singleOf(::BottomSheetServiceImpl).bind()
singleOf(::ToastServiceImpl).bind()
singleOf(::BottomBarServiceImpl).bind()
singleOf(::AlertDialogServiceImpl).bind()
singleOf(::PrayerServiceImpl).bind()
singleOf(::UserServiceImpl).bind()
singleOf(::AuthenticationServiceImpl).bind()
single{
FirebasePrayerSourceImpl(
prayerCollection = get(named("pray")),
firebaseMessaging = get(),
firebaseAuth = get()
)
}
single{
FirebaseUserSourceImpl(
userCollection = get(named("user")),
firebaseAuth = get()
)
}
singleOf(::GooglePlacesRepositoryImpl).bind()
singleOf(::PrayersTimeRepositoryImpl).bind()
}
private fun providePrayerCollection(db: dev.gitlive.firebase.firestore.FirebaseFirestore) =
db.collection(if (isDebug) "dev_pray" else "pray")
private fun provideUserCollection(db: dev.gitlive.firebase.firestore.FirebaseFirestore) =
db.collection("user")
Подробнее здесь: https://stackoverflow.com/questions/793 ... using-koin
Не удалось создать экземпляр ViewModel с использованием коина ⇐ IOS
Программируем под IOS
-
Anonymous
1738190680
Anonymous
Я пытаюсь сделать проект в KMP, однако приложение в версии Android работает как очарование, но версия iOS сбоятся мгновенно. < /p>
Вот (есть ( 50% полностью) ошибка, сгенерированная XCode. Я запускаю приложение из Xcode, потому что у меня есть некоторые зависимости кокопод для карт: < /p>
[INFO] [Koin] No Compose Koin context setup, taking default. Use KoinContext(), KoinAndroidContext() or KoinApplication() function to setup or create Koin context and avoid such message.
[DEBUG] [Koin] | > parameters DefinitionParameters[]
[DEBUG] [Koin] |- ? t:'com.cdm.janaza.core.presentation.navigation.NavigationViewModel' - q:'null' look in injected parameters
[DEBUG] [Koin] | (+) '[Factory: 'com.cdm.janaza.core.presentation.navigation.NavigationViewModel']'
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.BottomBarService'...
[DEBUG] [Koin] | (+) '[Singleton: 'com.cdm.janaza.core.data.service.BottomBarServiceImpl',binds:com.cdm.janaza.core.domain.service.BottomBarService]'
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.BottomBarService' in 0.017 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.AuthenticationService'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.AuthenticationService' in 0.004 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.ToastService'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.ToastService' in 0.002 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.BottomSheetService'...
[DEBUG] [Koin] | (+) '[Singleton: 'com.cdm.janaza.core.data.service.BottomSheetServiceImpl',binds:com.cdm.janaza.core.domain.service.BottomSheetService]'
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.BottomSheetService' in 0.013 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.PreferencesDataStoreRepository'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.PreferencesDataStoreRepository' in 0.002 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.PrayerService'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.PrayerService' in 0.002 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.UserService'...
[DEBUG] [Koin] | (+) '[Singleton: 'com.cdm.janaza.core.data.service.UserServiceImpl',binds:com.cdm.janaza.core.domain.service.UserService]'
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.FirebaseUserRepository'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.FirebaseUserRepository' in 0.002 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.FirebasePrayerRepository'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.FirebasePrayerRepository' in 0.002 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.UserService' in 0.045 ms
[DEBUG] [Koin] | > parameters DefinitionParameters[]
[DEBUG] [Koin] |- ? t:'com.cdm.janaza.feature_main.presentation.screen.home.HomeViewModel' - q:'null' look in injected parameters
[DEBUG] [Koin] | (+) '[Factory: 'com.cdm.janaza.feature_main.presentation.screen.home.HomeViewModel']'
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.AuthenticationService'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.AuthenticationService' in 0.003 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.PrayerService'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.PrayerService' in 0.002 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.OverlayService'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.OverlayService' in 0.002 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.PreferencesDataStoreRepository'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.repository.PreferencesDataStoreRepository' in 0.003 ms
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.BottomSheetService'...
[DEBUG] [Koin] |- 'com.cdm.janaza.core.domain.service.BottomSheetService' in 0.003 ms
[ERROR] [Koin] * Instance creation error : could not create instance for '[Factory: 'com.cdm.janaza.feature_main.presentation.screen.home.HomeViewModel']': kotlin.NullPointerException[kotlin.Exception]
[DEBUG] [Koin] | a t 0 J a n a z a . d e b u g . d y l i b 0 x 1 1 0 0 e 7 7 9 7 k f u n : k o t l i n . E x c e p t i o n # & l t ; i n i t & g t ; ( k o t l i n . S t r i n g ? ; k o t l i n . T h r o w a b l e ? ) { } + 1 2 3 < b r / > a t 1 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 2 e c 4 b k f u n : o r g . k o i n . c o r e . e r r o r . I n s t a n c e C r e a t i o n E x c e p t i o n # & l t ; i n i t & g t ; ( k o t l i n . S t r i n g ; k o t l i n . E x c e p t i o n ) { } + 1 2 3 < b r / > a t 2 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 3 0 0 7 7 k f u n : o r g . k o i n . c o r e . i n s t a n c e . I n s t a n c e F a c t o r y # c r e a t e ( o r g . k o i n . c o r e . i n s t a n c e . R e s o l u t i o n C o n t e x t ) { } 1 : 0 + 1 7 0 3 < b r / > a t 3 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 2 f 8 a 7 k f u n : o r g . k o i n . c o r e . i n s t a n c e . F a c t o r y I n s t a n c e F a c t o r y # g e t ( o r g . k o i n . c o r e . i n s t a n c e . R e s o l u t i o n C o n t e x t ) { } 1 : 0 + 1 0 3 < b r / > a t 4 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 a 4 6 7 k f u n : o r g . k o i n . c o r e . i n s t a n c e . I n s t a n c e F a c t o r y # g e t ( o r g . k o i n . c o r e . i n s t a n c e . R e s o l u t i o n C o n t e x t ) { } 1 : 0 - t r a m p o l i n e + 6 7 < b r / > a t 5 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 3 a c 9 f k f u n : o r g . k o i n . c o r e . r e g i s t r y . I n s t a n c e R e g i s t r y # r e s o l v e I n s t a n c e ( o r g . k o i n . c o r e . q u a l i f i e r . Q u a l i f i e r ? ; k o t l i n . r e f l e c t . K C l a s s & l t ; * & g t ; ; o r g . k o i n . c o r e . q u a l i f i e r . Q u a l i f i e r ; o r g . k o i n . c o r e . i n s t a n c e . R e s o l u t i o n C o n t e x t ) { 0 § & l t ; k o t l i n . A n y ? & g t ; } 0 : 0 ? + 3 4 3 < b r / > a t 6 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 3 7 5 7 k f u n : o r g . k o i n . c o r e . s c o p e . S c o p e . r e s o l v e F r o m R e g i s t r y # i n t e r n a l + 3 2 3 < b r / > a t 7 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 2 b b 7 k f u n : o r g . k o i n . c o r e . s c o p e . S c o p e . r e s o l v e F r o m C o n t e x t # i n t e r n a l + 1 5 0 3 < b r / > a t 8 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 1 f 1 f k f u n : o r g . k o i n . c o r e . s c o p e . S c o p e . s t a c k P a r a m e t e r s C a l l # i n t e r n a l + 8 7 1 < b r / > a t 9 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 1 b 6 f k f u n : o r g . k o i n . c o r e . s c o p e . S c o p e . r e s o l v e I n s t a n c e # i n t e r n a l + 8 6 7 < b r / > a t 1 0 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 1 5 4 7 k f u n : o r g . k o i n . c o r e . s c o p e . S c o p e . r e s o l v e # i n t e r n a l + 2 2 7 1 < b r / > a t 1 1 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 0 c 3 3 k f u n : o r g . k o i n . c o r e . s c o p e . S c o p e # g e t W i t h P a r a m e t e r s ( k o t l i n . r e f l e c t . K C l a s s & l t ; * & g t ; ; o r g . k o i n . c o r e . q u a l i f i e r . Q u a l i f i e r ? ; o r g . k o i n . c o r e . p a r a m e t e r . P a r a m e t e r s H o l d e r ? ) { 0 § & l t ; k o t l i n . A n y ? & g t ; } 0 : 0 + 1 5 9 < b r / > a t 1 2 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 d 2 0 3 k f u n : o r g . k o i n . v i e w m o d e l . f a c t o r y . K o i n V i e w M o d e l F a c t o r y # c r e a t e ( k o t l i n . r e f l e c t . K C l a s s & l t ; 0 : 0 & g t ; ; a n d r o i d x . l i f e c y c l e . v i e w m o d e l . C r e a t i o n E x t r a s ) { 0 § & l t ; a n d r o i d x . l i f e c y c l e . V i e w M o d e l & g t ; } 0 : 0 + 4 1 1 < b r / > a t 1 3 J a n a z a . d e b u g . d y l i b 0 x 1 1 0 e c f a c 7 k f u n : a n d r o i d x . l i f e c y c l e . V i e w M o d e l P r o v i d e r . F a c t o r y # c r e a t e ( k o t l i n . r e f l e c t . K C l a s s & l t ; 0 : 0 & g t ; ; a n d r o i d x . l i f e c y c l e . v i e w m o d e l . C r e a t i o n E x t r a s ) { 0 § & l t ; a n d r o i d x . l i f e c y c l e . V i e w M o d e l & g t ; } 0 : 0 - t r a m p o l i n e + 1 1 5 < b r / > a t 1 4 J a n a z a . d e b u g . d y l i b 0 x 1 1 0 e c f 2 1 3 k f u n : a n d r o i d x . l i f e c y c l e . v i e w m o d e l # c r e a t e V i e w M o d e l ( a n d r o i d x . l i f e c y c l e . V i e w M o d e l P r o v i d e r . F a c t o r y ; k o t l i n . r e f l e c t . K C l a s s & l t ; 0 : 0 & g t ; ; a n d r o i d x . l i f e c y c l e . v i e w m o d e l . C r e a t i o n E x t r a s ) { 0 § & l t ; a n d r o i d x . l i f e c y c l e . V i e w M o d e l & g t ; } 0 : 0 + 1 3 1 < b r / > a t 1 5 J a n a z a . d e b u g . d y l i b 0 x 1 1 0 e c b 3 8 7 k f u n : a n d r o i d x . l i f e c y c l e . v i e w m o d e l . V i e w M o d e l P r o v i d e r I m p l # g e t V i e w M o d e l ( k o t l i n . r e f l e c t . K C l a s s & l t ; 0 : 0 & g t ; ; k o t l i n . S t r i n g ) { 0 § & l t ; a n d r o i d x . l i f e c y c l e . V i e w M o d e l & g t ; } 0 : 0 + 1 1 6 3 < b r / > a t 1 6 J a n a z a . d e b u g . d y l i b 0 x 1 1 0 e c b 5 f 7 k f u n : a n d r o i d x . l i f e c y c l e . v i e w m o d e l . V i e w M o d e l P r o v i d e r I m p l # g e t V i e w M o d e l $ d e f a u l t ( k o t l i n . r e f l e c t . K C l a s s & l t ; 0 : 0 & g t ; ; k o t l i n . S t r i n g ? ; k o t l i n . I n t ) { 0 § & l t ; a n d r o i d x . l i f e c y c l e . V i e w M o d e l & g t ; } 0 : 0 + 3 1 1 < b r / > a t 1 7 J a n a z a . d e b u g . d y l i b 0 x 1 1 0 e c d f d b k f u n : a n d r o i d x . l i f e c y c l e . V i e w M o d e l P r o v i d e r # g e t ( k o t l i n . r e f l e c t . K C l a s s & l t ; 0 : 0 & g t ; ) { 0 § & l t ; a n d r o i d x . l i f e c y c l e . V i e w M o d e l & g t ; } 0 : 0 + 1 8 3 < b r / > a t 1 8 J a n a z a . d e b u g . d y l i b 0 x 1 1 1 c 4 c 4 8 7 k f u n : o r g . k o i n . v i e w m o d e l # r e s o l v e V i e w M o d e l ( k o t l i n . r e f l e c t . K C l a s s & l t ; 0 : 0 & g t ; ; a n d r o i d x . l i f e c y c l e . V i e w M o d e l S t o r e ; k o t l i n . S t r i n g ? ; a n d r o i d x . l i f e c y c l e . v i e w m o d e l . C r e a t i o n E x t r a s ; o r g . k o i n . c o r e . q u a l i f i e r . Q u a l i f i e r ? ; o r g . k o i n . c o r e . s c o p e . S c o p e ; k o t l i n . F u n c t i o n 0 & l t ; o r g . k o i n . c o r e . p a r a m e t e r . P a r a m e t e r s H o l d e r & g t ; ? ) {0§}0:0 + 711
at 19 Janaza.debug.dylib 0x10fd88da7 kfun:com.cdm.janaza.feature_main.presentation.screen.home#Home(androidx.compose.foundation.layout.PaddingValues;kotlin.Function0;kotlin.Function1;androidx.compose.runtime.Composer?;kotlin.Int){} + 5899
at 20 Janaza.debug.dylib 0x10fc7cc8f kfun:com.cdm.janaza.core.presentation.navigation.navHost.navGraphBuilder.screen.home$lambda$5#internal + 375
at 21 Janaza.debug.dylib 0x10fc7cea7 kfun:com.cdm.janaza.core.presentation.navigation.navHost.navGraphBuilder.screen.$home$lambda$5$FUNCTION_REFERENCE$2.invoke#internal + 179
at 22 Janaza.debug.dylib 0x10fc7d06f kfun:com.cdm.janaza.core.presentation.navigation.navHost.navGraphBuilder.screen.$home$lambda$5$FUNCTION_REFERENCE$2.$
invoke(androidx.compose.animation.AnimatedContentScope;androidx.navigation.NavBackStackEntry;androidx.compose.runtime.Composer;kotlin.Int){}#internal + 231
at 23 Janaza.debug.dylib 0x110247873 kfun:kotlin.Function4#invoke(1:0;1:1;1:2;1:3){}1:4-trampoline + 131
at 24 Janaza.debug.dylib 0x1105e84b3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(kotlin.Any?;kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 687
at 25 Janaza.debug.dylib 0x1105f605b kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#$
invoke(kotlin.Any?;kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any?(kotlin.Any?;kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Any?){}kotlin.Any? + 235
at 26 Janaza.debug.dylib 0x110247873 kfun:kotlin.Function4#invoke(1:0;1:1;1:2;1:3){}1:4-trampoline + 131
at 27 Janaza.debug.dylib 0x111c1e3f7 kfun:androidx.navigation.compose.NavHost$lambda$41$lambda$40#internal + 659
at 28 Janaza.debug.dylib 0x111c22423 kfun:androidx.navigation.compose.$NavHost$lambda$41$lambda$40$FUNCTION_REFERENCE$37.invoke#internal + 119
at 29 Janaza.debug.dylib 0x111c22577 kfun:androidx.navigation.compose.$NavHost$lambda$41$lambda$40$FUNCTION_REFERENCE$37.$
invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 30 Janaza.debug.dylib 0x110239d67 kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 31 Janaza.debug.dylib 0x1105e7d9b kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 32 Janaza.debug.dylib 0x1105f5e3f kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#$
invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any?(androidx.compose.runtime.Composer;kotlin.Any?){}kotlin.Any? + 163
at 33 Janaza.debug.dylib 0x110239d67 kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 34 Janaza.debug.dylib 0x1104d3097 kfun:androidx.compose.runtime#CompositionLocalProvider(androidx.compose.runtime.ProvidedValue;kotlin.Function2;androidx.compose.runtime.Composer?;kotlin.Int){} + 611
at 35 Janaza.debug.dylib 0x110de9abf kfun:androidx.compose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider#internal + 2963
at 36 Janaza.debug.dylib 0x110deed37 kfun:androidx.compose.runtime.saveable.SaveableStateHolder#SaveableStateProvider(kotlin.Any;kotlin.Function2;androidx.compose.runtime.Composer?;kotlin.Int){}-trampoline + 123
at 37 Janaza.debug.dylib 0x111c25d5b kfun:androidx.navigation.compose.SaveableStateProvider#internal + 1547
at 38 Janaza.debug.dylib 0x111c26673 kfun:androidx.navigation.compose.LocalOwnersProvider$lambda$0#internal + 475
at 39 Janaza.debug.dylib 0x111c26a3f kfun:androidx.navigation.compose.$LocalOwnersProvider$lambda$0$FUNCTION_REFERENCE$0.invoke#internal + 119
at 40 Janaza.debug.dylib 0x111c26b93 kfun:androidx.navigation.compose.$LocalOwnersProvider$lambda$0$FUNCTION_REFERENCE$0.$
invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 41 Janaza.debug.dylib 0x110239d67 kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.runtime.BroadcastFrameClock@da805e8, StandaloneCoroutine{Cancelling}@5daf340, FlushCoroutineDispatcher@db00f28]
at 0 Janaza.debug.dylib 0x1100ed6ab kfun:kotlin.Throwable#(kotlin.String?){} + 99
at 1 Janaza.debug.dylib 0x1100e7707 kfun:kotlin.Exception#(kotlin.String?){} + 95
at 2 Janaza.debug.dylib 0x1100e78d7 kfun:kotlin.RuntimeException#(kotlin.String?){} + 95
at 3 Janaza.debug.dylib 0x11036009f kfun:kotlinx.coroutines.internal.DiagnosticCoroutineContextException#(kotlin.coroutines.CoroutineContext){} + 175
at 4 Janaza.debug.dylib 0x110331197 kfun:kotlinx.coroutines.internal#handleUncaughtCoroutineException(kotlin.coroutines.CoroutineContext;kotlin.Throwable){} + 667
at 5 Janaza.debug.dylib 0x1102bab27 kfun:kotlinx.coroutines#handleCoroutineException(kotlin.coroutines.CoroutineContext;kotlin.Throwable){} + 563
at 6 Janaza.debug.dylib 0x1102ae053 kfun:kotlinx.coroutines.StandaloneCoroutine.handleJobException#internal + 167
at 7 Janaza.debug.dylib 0x11036833f kfun:kotlinx.coroutines.JobSupport#handleJobException(kotlin.Throwable){}kotlin.Boolean-trampoline + 59
at 8 Janaza.debug.dylib 0x1102c599b kfun:kotlinx.coroutines.JobSupport.finalizeFinishingState#internal + 1227
at 9 Janaza.debug.dylib 0x1102ce3cb kfun:kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath#internal + 2447
at 10 Janaza.debug.dylib 0x1102cda03 kfun:kotlinx.coroutines.JobSupport.tryMakeCompleting#internal + 755
at 11 Janaza.debug.dylib 0x1102cd50b kfun:kotlinx.coroutines.JobSupport#makeCompletingOnce(kotlin.Any?){}kotlin.Any? + 451
at 12 Janaza.debug.dylib 0x1102aa277 kfun:kotlinx.coroutines.AbstractCoroutine#resumeWith(kotlin.Result){} + 203
at 13 Janaza.debug.dylib 0x11023962f kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result){}-trampoline + 99
at 14 Janaza.debug.dylib 0x1100f2ca3 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result){} + 1295
at 15 Janaza.debug.dylib 0x11023962f 0xc353ffffffffffff 0x0 + -4371869338269908993
Caused by: kotlin.NullPointerException
at 0 Janaza.debug.dylib 0x1100ed823 kfun:kotlin.Throwable#(){} + 75
at 1 Janaza.debug.dylib 0x1100e7693 kfun:kotlin.Exception#(){} + 67
at 2 Janaza.debug.dylib 0x1100e7863 kfun:kotlin.RuntimeException#(){} + 67
at 3 Janaza.debug.dylib 0x1100e7a33
< /code>
Вот моя настройка коина: < /p>
fun initKoin(config: KoinAppDeclaration? = null) {
startKoin {
printLogger(Level.DEBUG)
config?.invoke(this)
modules(
appModule,
sharedRepositoryModule,
viewModelModule
)
}
}
< /code>
mainviewcontroller: < /p>
fun MainViewController() = ComposeUIViewController(
configure = {
initKoin()
Firebase.initialize()
}
) {
App()
}
< /code>
my viewmodelmodule: < /p>
val viewModelModule = module {
viewModelOf(::HomeViewModel)
}
< /code>
my appmodule: < /p>
val appModule = module {
single { Firebase.firestore }
single { Firebase.messaging }
single { Firebase.auth }
single { createHttpClient() }
single(named("pray")) { providePrayerCollection(get()) }
single(named("user")) { provideUserCollection(get()) }
singleOf(::OverlayServiceImpl).bind()
singleOf(::BottomSheetServiceImpl).bind()
singleOf(::ToastServiceImpl).bind()
singleOf(::BottomBarServiceImpl).bind()
singleOf(::AlertDialogServiceImpl).bind()
singleOf(::PrayerServiceImpl).bind()
singleOf(::UserServiceImpl).bind()
singleOf(::AuthenticationServiceImpl).bind()
single{
FirebasePrayerSourceImpl(
prayerCollection = get(named("pray")),
firebaseMessaging = get(),
firebaseAuth = get()
)
}
single{
FirebaseUserSourceImpl(
userCollection = get(named("user")),
firebaseAuth = get()
)
}
singleOf(::GooglePlacesRepositoryImpl).bind()
singleOf(::PrayersTimeRepositoryImpl).bind()
}
private fun providePrayerCollection(db: dev.gitlive.firebase.firestore.FirebaseFirestore) =
db.collection(if (isDebug) "dev_pray" else "pray")
private fun provideUserCollection(db: dev.gitlive.firebase.firestore.FirebaseFirestore) =
db.collection("user")
Подробнее здесь: [url]https://stackoverflow.com/questions/79385832/could-not-create-instance-of-viewmodel-using-koin[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия