Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

org.koin.core.error.InstanceCreationException: Could not create instance for '[Factory: 'ViewModelName' #2125

Open
Feinate opened this issue Jan 31, 2025 · 0 comments

Comments

@Feinate
Copy link

Feinate commented Jan 31, 2025

Describe the bug
On iOS, when using Koin for dependency injection in a Kotlin Multiplatform Mobile (KMM) project, an InstanceCreationException is thrown when attempting to create an instance of HousesViewModelImpl. The issue only occurs on iOS, and the app works fine on Android.

-- Start of trace --

2025-01-31 00:46:15.439155+0100 Officine[18355:335513] [PPT] Error creating the CFMessagePort needed to communicate with PPT.
org.koin.core.error.InstanceCreationException: Could not create instance for '[Factory: 'com.shabakett.officine.core.navigation.screen.NavigationViewModel']'
Uncaught Kotlin exception: at 0 Officine.debug.dylib 0x107b02433 kfun:kotlin.Exception#(kotlin.String?;kotlin.Throwable?){} + 123
at 1 Officine.debug.dylib 0x10804343b kfun:org.koin.core.error.InstanceCreationException#(kotlin.String;kotlin.Exception){} + 123
at 2 Officine.debug.dylib 0x108044867 kfun:org.koin.core.instance.InstanceFactory#create(org.koin.core.instance.ResolutionContext){}1:0 + 1703
at 3 Officine.debug.dylib 0x108044097 kfun:org.koin.core.instance.FactoryInstanceFactory#get(org.koin.core.instance.ResolutionContext){}1:0 + 103
at 4 Officine.debug.dylib 0x10805ef13 kfun:org.koin.core.instance.InstanceFactory#get(org.koin.core.instance.ResolutionContext){}1:0-trampoline + 67
at 5 Officine.debug.dylib 0x10804f3a3 kfun:org.koin.core.registry.InstanceRegistry#resolveInstance(org.koin.core.qualifier.Qualifier?;kotlin.reflect.KClass<>;org.koin.core.qualifier.Qualifier;org.koin.core.instance.ResolutionContext){0§<kotlin.Any?>}0:0? + 343
at 6 Officine.debug.dylib 0x108057e5b kfun:org.koin.core.scope.Scope.resolveFromRegistry#internal + 323
at 7 Officine.debug.dylib 0x1080572bb kfun:org.koin.core.scope.Scope.resolveFromContext#internal + 1503
at 8 Officine.debug.dylib 0x108056623 kfun:org.koin.core.scope.Scope.stackParametersCall#internal + 871
at 9 Officine.debug.dylib 0x108056273 kfun:org.koin.core.scope.Scope.resolveInstance#internal + 867
at 10 Officine.debug.dylib 0x108055767 kfun:org.koin.core.scope.Scope.resolve#internal + 1019
at 11 Officine.debug.dylib 0x108055337 kfun:org.koin.core.scope.Scope#getWithParameters(kotlin.reflect.KClass<
>;org.koin.core.qualifier.Qualifier?;org.koin.core.parameter.ParametersHolder?){0§<kotlin.Any?>}0:0 + 159
at 12 Officine.debug.dylib 0x1097b63d7 kfun:org.koin.viewmodel.factory.KoinViewModelFactory#create(kotlin.reflect.KClass<0:0>;androidx.lifecycle.viewmodel.CreationExtras){0§<androidx.lifecycle.ViewModel>}0:0 + 411
at 13 Officine.debug.dylib 0x1089389b7 kfun:androidx.lifecycle.ViewModelProvider.Factory#create(kotlin.reflect.KClass<0:0>;androidx.lifecycle.viewmodel.CreationExtras){0§<androidx.lifecycle.ViewModel>}0:0-trampoline + 115
at 14 Officine.debug.dylib 0x108938103 kfun:androidx.lifecycle.viewmodel#createViewModel(androidx.lifecycle.ViewModelProvider.Factory;kotlin.reflect.KClass<0:0>;androidx.lifecycle.viewmodel.CreationExtras){0§<androidx.lifecycle.ViewModel>}0:0 + 131
at 15 Officine.debug.dylib 0x108934277 kfun:androidx.lifecycle.viewmodel.ViewModelProviderImpl#getViewModel(kotlin.reflect.KClass<0:0>;kotlin.String){0§<androidx.lifecycle.ViewModel>}0:0 + 1163
at 16 Officine.debug.dylib 0x1089344e7 kfun:androidx.lifecycle.viewmodel.ViewModelProviderImpl#getViewModel$default(kotlin.reflect.KClass<0:0>;kotlin.String?;kotlin.Int){0§<androidx.lifecycle.ViewModel>}0:0 + 311
at 17 Officine.debug.dylib 0x108936ecb kfun:androidx.lifecycle.ViewModelProvider#get(kotlin.reflect.KClass<0:0>){0§<androidx.lifecycle.ViewModel>}0:0 + 183
at 18 Officine.debug.dylib 0x1097b565b kfun:org.koin.viewmodel#resolveViewModel(kotlin.reflect.KClass<0:0>;androidx.lifecycle.ViewModelStore;kotlin.String?;androidx.lifecycle.viewmodel.CreationExtras;org.koin.core.qualifier.Qualifier?;org.koin.core.scope.Scope;kotlin.Function0<org.koin.core.parameter.ParametersHolder>?){0§<androidx.lifecycle.ViewModel>}0:0 + 711
at 19 Officine.debug.dylib 0x106ff40fb kfun:com.shabakett.officine#App(com.shabakett.officine.core.navigation.screen.NavigationViewModel?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){} + 2375
at 20 Officine.debug.dylib 0x1076ae8e3 kfun:com.shabakett.officine.ComposableSingletons$MainViewControllerKt.$lambda$0#internal + 411
at 21 Officine.debug.dylib 0x1076ae9b3 kfun:com.shabakett.officine.ComposableSingletons$MainViewControllerKt.$$lambda$0$FUNCTION_REFERENCE$0.invoke#internal + 95
at 22 Officine.debug.dylib 0x1076aea67 kfun:com.shabakett.officine.ComposableSingletons$MainViewControllerKt.$$lambda$0$FUNCTION_REFERENCE$0.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 23 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 24 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 25 Officine.debug.dylib 0x108021667 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 26 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 27 Officine.debug.dylib 0x107efdee3 kfun:androidx.compose.runtime#CompositionLocalProvider(kotlin.Array<out|androidx.compose.runtime.ProvidedValue<>>...;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 611
at 28 Officine.debug.dylib 0x108b88057 kfun:androidx.compose.ui.scene.ComposeHostingViewController.ProvideContainerCompositionLocals#internal + 1875
at 29 Officine.debug.dylib 0x108b890df kfun:androidx.compose.ui.scene.ComposeHostingViewController.createMediator$lambda$4#internal + 475
at 30 Officine.debug.dylib 0x108b8ac4b kfun:androidx.compose.ui.scene.ComposeHostingViewController.$createMediator$lambda$4$FUNCTION_REFERENCE$10.invoke#internal + 115
at 31 Officine.debug.dylib 0x108b8ad73 kfun:androidx.compose.ui.scene.ComposeHostingViewController.$createMediator$lambda$4$FUNCTION_REFERENCE$10.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 32 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 33 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 34 Officine.debug.dylib 0x108021667 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 35 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 36 Officine.debug.dylib 0x108aed98f kfun:androidx.compose.ui.layout#OverlayLayout(androidx.compose.ui.Modifier;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 3159
at 37 Officine.debug.dylib 0x108b35d9f kfun:androidx.compose.ui.viewinterop#TrackInteropPlacementContainer__at__androidx.compose.ui.viewinterop.InteropContainer(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 1947
at 38 Officine.debug.dylib 0x108b9be57 kfun:androidx.compose.ui.scene.ComposeSceneMediator.setContent$lambda$16$lambda$15$lambda$14$lambda$13#internal + 507
at 39 Officine.debug.dylib 0x108ba1807 kfun:androidx.compose.ui.scene.ComposeSceneMediator.$setContent$lambda$16$lambda$15$lambda$14$lambda$13$FUNCTION_REFERENCE$40.invoke#internal + 119
at 40 Officine.debug.dylib 0x108ba195b kfun:androidx.compose.ui.scene.ComposeSceneMediator.$setContent$lambda$16$lambda$15$lambda$14$lambda$13$FUNCTION_REFERENCE$40.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 41 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 42 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 43 Officine.debug.dylib 0x108021667 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 44 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 45 Officine.debug.dylib 0x108ae87d7 kfun:androidx.compose.ui.layout#OffsetToFocusedRect(androidx.compose.ui.platform.PlatformInsets;kotlin.Function0<androidx.compose.ui.geometry.Rect?>;androidx.compose.ui.unit.IntSize?;kotlin.time.Duration;kotlin.Function0<kotlin.Unit>;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 8051
at 46 Officine.debug.dylib 0x108b95aef kfun:androidx.compose.ui.scene.ComposeSceneMediator.FocusAboveKeyboardIfNeeded#internal + 3683
at 47 Officine.debug.dylib 0x108b9c14b kfun:androidx.compose.ui.scene.ComposeSceneMediator.setContent$lambda$16$lambda$15$lambda$14#internal + 639
at 48 Officine.debug.dylib 0x108ba1a07 kfun:androidx.compose.ui.scene.ComposeSceneMediator.$setContent$lambda$16$lambda$15$lambda$14$FUNCTION_REFERENCE$41.invoke#internal + 119
at 49 Officine.debug.dylib 0x108ba1b5b kfun:androidx.compose.ui.scene.ComposeSceneMediator.$setContent$lambda$16$lambda$15$lambda$14$FUNCTION_REFERENCE$41.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 50 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 51 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 52 Officine.debug.dylib 0x108021667 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 53 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 54 Officine.debug.dylib 0x107efdee3 kfun:androidx.compose.runtime#CompositionLocalProvider(kotlin.Array<out|androidx.compose.runtime.ProvidedValue<
>>...;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 611
at 55 Officine.debug.dylib 0x108b94b5b kfun:androidx.compose.ui.scene.ComposeSceneMediator.ProvideComposeSceneMediatorCompositionLocals#internal + 1567
at 56 Officine.debug.dylib 0x108b9c43f kfun:androidx.compose.ui.scene.ComposeSceneMediator.setContent$lambda$16$lambda$15#internal + 639
at 57 Officine.debug.dylib 0x108ba1c07 kfun:androidx.compose.ui.scene.ComposeSceneMediator.$setContent$lambda$16$lambda$15$FUNCTION_REFERENCE$42.invoke#internal + 119
at 58 Officine.debug.dylib 0x108ba1d5b kfun:androidx.compose.ui.scene.ComposeSceneMediator.$setContent$lambda$16$lambda$15$FUNCTION_REFERENCE$42.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 59 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 60 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 61 Officine.debug.dylib 0x108021667 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 62 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 63 Officine.debug.dylib 0x107efe25f kfun:androidx.compose.runtime#CompositionLocalProvider(androidx.compose.runtime.ProvidedValue<>;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 611
at 64 Officine.debug.dylib 0x108b1a887 kfun:androidx.compose.ui.scene.BaseComposeScene.setContent$lambda$0#internal + 531
at 65 Officine.debug.dylib 0x108b1b567 kfun:androidx.compose.ui.scene.BaseComposeScene.$setContent$lambda$0$FUNCTION_REFERENCE$6.invoke#internal + 119
at 66 Officine.debug.dylib 0x108b1b6bb kfun:androidx.compose.ui.scene.BaseComposeScene.$setContent$lambda$0$FUNCTION_REFERENCE$6.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 67 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 68 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 69 Officine.debug.dylib 0x108021667 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 70 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 71 Officine.debug.dylib 0x108ad85d7 kfun:androidx.compose.ui.platform#ProvidePlatformCompositionLocals(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 775
at 72 Officine.debug.dylib 0x108b13e03 kfun:androidx.compose.ui.platform.setContent$lambda$3$lambda$2$lambda$1#internal + 443
at 73 Officine.debug.dylib 0x108b14cf7 kfun:androidx.compose.ui.platform.$setContent$lambda$3$lambda$2$lambda$1$FUNCTION_REFERENCE$3.invoke#internal + 115
at 74 Officine.debug.dylib 0x108b14e1f kfun:androidx.compose.ui.platform.$setContent$lambda$3$lambda$2$lambda$1$FUNCTION_REFERENCE$3.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 75 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 76 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 77 Officine.debug.dylib 0x108021667 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 78 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 79 Officine.debug.dylib 0x107efdee3 kfun:androidx.compose.runtime#CompositionLocalProvider(kotlin.Array<out|androidx.compose.runtime.ProvidedValue<
>>...;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 611
at 80 Officine.debug.dylib 0x108aa3db3 kfun:androidx.compose.ui.platform#ProvideCommonCompositionLocals(androidx.compose.ui.node.Owner;androidx.compose.ui.platform.UriHandler;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 3871
at 81 Officine.debug.dylib 0x108b143c3 kfun:androidx.compose.ui.platform.setContent$lambda$3$lambda$2#internal + 1355
at 82 Officine.debug.dylib 0x108b14ecb kfun:androidx.compose.ui.platform.$setContent$lambda$3$lambda$2$FUNCTION_REFERENCE$4.invoke#internal + 119
at 83 Officine.debug.dylib 0x108b1501f kfun:androidx.compose.ui.platform.$setContent$lambda$3$lambda$2$FUNCTION_REFERENCE$4.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 84 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 85 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 86 Officine.debug.dylib 0x108021667 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 87 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 88 Officine.debug.dylib 0x108b139eb kfun:androidx.compose.ui.platform.provide#internal + 1287
at 89 Officine.debug.dylib 0x108b146e7 kfun:androidx.compose.ui.platform.setContent$lambda$3#internal + 687
at 90 Officine.debug.dylib 0x108b148af kfun:androidx.compose.ui.platform.$setContent$lambda$3$FUNCTION_REFERENCE$1.invoke#internal + 123
at 91 Officine.debug.dylib 0x108b14a2f kfun:androidx.compose.ui.platform.$setContent$lambda$3$FUNCTION_REFERENCE$1.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 92 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 93 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 94 Officine.debug.dylib 0x108021667 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 95 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 96 Officine.debug.dylib 0x108025b77 kfun:androidx.compose.runtime#invokeComposable(androidx.compose.runtime.Composer;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 215
at 97 Officine.debug.dylib 0x107edbd63 kfun:androidx.compose.runtime.ComposerImpl.doCompose#internal + 2563
at 98 Officine.debug.dylib 0x107edaef7 kfun:androidx.compose.runtime.ComposerImpl#composeContent(androidx.compose.runtime.collection.ScopeMap<androidx.compose.runtime.RecomposeScopeImpl,kotlin.Any>;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 283
at 99 Officine.debug.dylib 0x107eea4a7 kfun:androidx.compose.runtime.CompositionImpl#composeContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 1119
at 100 Officine.debug.dylib 0x10802d86f kfun:androidx.compose.runtime.ControlledComposition#composeContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}-trampoline + 99
at 101 Officine.debug.dylib 0x107f19283 kfun:androidx.compose.runtime.Recomposer#composeInitial(androidx.compose.runtime.ControlledComposition;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 911
at 102 Officine.debug.dylib 0x10802cbe7 kfun:androidx.compose.runtime.CompositionContext#composeInitial(androidx.compose.runtime.ControlledComposition;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}-trampoline + 67
at 103 Officine.debug.dylib 0x107ee9797 kfun:androidx.compose.runtime.CompositionImpl.composeInitial#internal + 323
at 104 Officine.debug.dylib 0x107ee953b kfun:androidx.compose.runtime.CompositionImpl#setContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 95
at 105 Officine.debug.dylib 0x10802d27b kfun:androidx.compose.runtime.Composition#setContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}-trampoline + 99
at 106 Officine.debug.dylib 0x108b1349b kfun:androidx.compose.ui.platform#setContent__at__androidx.compose.ui.node.RootNodeOwner(androidx.compose.runtime.CompositionContext;kotlin.Function0<androidx.compose.runtime.CompositionLocalContext?>;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}androidx.compose.runtime.Composition + 535
at 107 Officine.debug.dylib 0x108b34003 kfun:androidx.compose.ui.scene.PlatformLayersComposeSceneImpl.createComposition#internal + 287
at 108 Officine.debug.dylib 0x108c1ce5b kfun:androidx.compose.ui.scene.BaseComposeScene#createComposition(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}androidx.compose.runtime.Composition-trampoline + 67
at 109 Officine.debug.dylib 0x108b16f3b kfun:androidx.compose.ui.scene.BaseComposeScene#setContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 1755
at 110 Officine.debug.dylib 0x108c181db kfun:androidx.compose.ui.scene.ComposeScene#setContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}-trampoline + 99
at 111 Officine.debug.dylib 0x108b9c66b kfun:androidx.compose.ui.scene.ComposeSceneMediator.setContent$lambda$16#internal + 439
at 112 Officine.debug.dylib 0x108b9f627 kfun:androidx.compose.ui.scene.ComposeSceneMediator.$setContent$lambda$16$FUNCTION_REFERENCE$18.invoke#internal + 75
at 113 Officine.debug.dylib 0x108b9f723 kfun:androidx.compose.ui.scene.ComposeSceneMediator.$setContent$lambda$16$FUNCTION_REFERENCE$18.$invoke(){}#internal + 71
at 114 Officine.debug.dylib 0x107c52647 kfun:kotlin.Function0#invoke(){}1:0-trampoline + 99
at 115 Officine.debug.dylib 0x108ba57ef kfun:androidx.compose.ui.scene.ComposeSceneMediatorView.runOnceOnAppeared$lambda$0#internal + 143
at 116 Officine.debug.dylib 0x108ba58bb kfun:androidx.compose.ui.scene.ComposeSceneMediatorView.$runOnceOnAppeared$lambda$0$FUNCTION_REFERENCE$0.invoke#internal + 75
at 117 Officine.debug.dylib 0x108ba59b7 kfun:androidx.compose.ui.scene.ComposeSceneMediatorView.$runOnceOnAppeared$lambda$0$FUNCTION_REFERENCE$0.$invoke(){}#internal + 71
at 118 Officine.debug.dylib 0x107c52647 kfun:kotlin.Function0#invoke(){}1:0-trampoline + 99
at 119 Officine.debug.dylib 0x108ba4ec7 kfun:androidx.compose.ui.scene.ComposeSceneMediatorView.runOnAppearedIfEligible#internal + 1191
at 120 Officine.debug.dylib 0x108ba512f kfun:androidx.compose.ui.scene.ComposeSceneMediatorView#objc:layoutSubviews + 275
at 121 Officine.debug.dylib 0x108ba5c0b _6f72672e6a6574627261696e732e636f6d706f73652e75693a75692f6f70742f6275696c644167656e742f776f726b2f323262393232303366303037343765302f636f6d706f73652f75692f75692f7372632f75696b69744d61696e2f6b6f746c696e2f616e64726f6964782f636f6d706f73652f75692f7363656e652f436f6d706f73655363656e654d65646961746f72566965772e75696b69742e6b74_knbridge22 + 143
at 122 UIKitCore 0x1860a3417 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 2403
at 123 QuartzCore 0x18b335623 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 431
at 124 QuartzCore 0x18b3403f7 _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 123
at 125 QuartzCore 0x18b27242f _ZN2CA7Context18commit_transactionEPNS_11TransactionEdPd + 463
Caused by: kotlin.NullPointerException
at 0 Officine.debug.dylib 0x107b0862b kfun:kotlin.Throwable#(){} + 75
at 1 Officine.debug.dylib 0x107b0232f kfun:kotlin.Exception#(){} + 67
at 2 Officine.debug.dylib 0x107b024ff kfun:kotlin.RuntimeException#(){} + 67
at 3 Officine.debug.dylib 0x107b026cf kfun:kotlin.NullPointerException#(){} + 67
at 4 Officine.debug.dylib 0x107b39947 ThrowNullPointerException + 127
at 5 Officine.debug.dylib 0x107aeb587 kfun:kotlinx.cinterop#__at__0:0(){0§<kotlinx.cinterop.CPointed>}kotlinx.cinterop.CPointer<0:0> + 63
at 6 Officine.debug.dylib 0x108935d17 kfun:androidx.lifecycle.viewmodel.internal.SynchronizedObject.Resource.lock#internal + 127
at 7 Officine.debug.dylib 0x10893557b kfun:androidx.lifecycle.viewmodel.internal.SynchronizedObject#lock(){} + 131
at 8 Officine.debug.dylib 0x108933613 kfun:androidx.lifecycle.viewmodel.internal.ViewModelImpl#getCloseable(kotlin.String){0§<kotlin.AutoCloseable>}0:0? + 323
at 9 Officine.debug.dylib 0x108936bff kfun:androidx.lifecycle.ViewModel#getCloseable(kotlin.String){0§<kotlin.AutoCloseable>}0:0? + 175
at 10 Officine.debug.dylib 0x108930097 kfun:androidx.lifecycle#__at__androidx.lifecycle.ViewModel(){}kotlinx.coroutines.CoroutineScope + 427
at 11 Officine.debug.dylib 0x10727cb0f kfun:com.shabakett.officine.core.utils.flow#stateInWhileSubscribed!androidx.lifecycle.ViewModel__at__kotlinx.coroutines.flow.Flow<0:0>(0:0){0§<kotlin.Any?>}kotlinx.coroutines.flow.StateFlow<0:0> + 195
at 12 Officine.debug.dylib 0x1071704e7 kfun:com.shabakett.officine.core.navigation.screen.NavigationViewModel#(com.shabakett.officine.feature_message.domain.service.NotificationService;com.shabakett.officine.core.domain.service.OverlayService;com.shabakett.officine.core.domain.service.AlertDialogService;com.shabakett.officine.core.domain.service.ToastService;com.shabakett.officine.core.data.repository.PreferencesRepository;com.shabakett.officine.feature_message.domain.service.RealtimeStreamService;com.shabakett.officine.core.navigation.Na + 979
at 13 Officine.debug.dylib 0x1070f14e7 kfun:com.shabakett.officine.core.di.module.common.viewModelModule$lambda$28$lambda$0#internal + 2099
at 14 Officine.debug.dylib 0x10710291f kfun:com.shabakett.officine.core.di.module.common.$viewModelModule$lambda$28$lambda$0$FUNCTION_REFERENCE$1.invoke#internal + 115
at 15 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 16 Officine.debug.dylib 0x108044593 kfun:org.koin.core.instance.InstanceFactory#create(org.koin.core.instance.ResolutionContext){}1:0 + 979
at 17 Officine.debug.dylib 0x108044097 kfun:org.koin.core.instance.FactoryInstanceFactory#get(org.koin.core.instance.ResolutionContext){}1:0 + 103
at 18 Officine.debug.dylib 0x10805ef13 kfun:org.koin.core.instance.InstanceFactory#get(org.koin.core.instance.ResolutionContext){}1:0-trampoline + 67
at 19 Officine.debug.dylib 0x10804f3a3 kfun:org.koin.core.registry.InstanceRegistry#resolveInstance(org.koin.core.qualifier.Qualifier?;kotlin.reflect.KClass<>;org.koin.core.qualifier.Qualifier;org.koin.core.instance.ResolutionContext){0§<kotlin.Any?>}0:0? + 343
at 20 Officine.debug.dylib 0x108057e5b kfun:org.koin.core.scope.Scope.resolveFromRegistry#internal + 323
at 21 Officine.debug.dylib 0x1080572bb kfun:org.koin.core.scope.Scope.resolveFromContext#internal + 1503
at 22 Officine.debug.dylib 0x108056623 kfun:org.koin.core.scope.Scope.stackParametersCall#internal + 871
at 23 Officine.debug.dylib 0x108056273 kfun:org.koin.core.scope.Scope.resolveInstance#internal + 867
at 24 Officine.debug.dylib 0x108055767 kfun:org.koin.core.scope.Scope.resolve#internal + 1019
at 25 Officine.debug.dylib 0x108055337 kfun:org.koin.core.scope.Scope#getWithParameters(kotlin.reflect.KClass<
>;org.koin.core.qualifier.Qualifier?;org.koin.core.parameter.ParametersHolder?){0§<kotlin.Any?>}0:0 + 159
at 26 Officine.debug.dylib 0x1097b63d7 kfun:org.koin.viewmodel.factory.KoinViewModelFactory#create(kotlin.reflect.KClass<0:0>;androidx.lifecycle.viewmodel.CreationExtras){0§<androidx.lifecycle.ViewModel>}0:0 + 411
at 27 Officine.debug.dylib 0x1089389b7 kfun:androidx.lifecycle.ViewModelProvider.Factory#create(kotlin.reflect.KClass<0:0>;androidx.lifecycle.viewmodel.CreationExtras){0§<androidx.lifecycle.ViewModel>}0:0-trampoline + 115
at 28 Officine.debug.dylib 0x108938103 kfun:androidx.lifecycle.viewmodel#createViewModel(androidx.lifecycle.ViewModelProvider.Factory;kotlin.reflect.KClass<0:0>;androidx.lifecycle.viewmodel.CreationExtras){0§<androidx.lifecycle.ViewModel>}0:0 + 131
at 29 Officine.debug.dylib 0x108934277 kfun:androidx.lifecycle.viewmodel.ViewModelProviderImpl#getViewModel(kotlin.reflect.KClass<0:0>;kotlin.String){0§<androidx.lifecycle.ViewModel>}0:0 + 1163
at 30 Officine.debug.dylib 0x1089344e7 kfun:androidx.lifecycle.viewmodel.ViewModelProviderImpl#getViewModel$default(kotlin.reflect.KClass<0:0>;kotlin.String?;kotlin.Int){0§<androidx.lifecycle.ViewModel>}0:0 + 311
at 31 Officine.debug.dylib 0x108936ecb kfun:androidx.lifecycle.ViewModelProvider#get(kotlin.reflect.KClass<0:0>){0§<androidx.lifecycle.ViewModel>}0:0 + 183
at 32 Officine.debug.dylib 0x1097b565b kfun:org.koin.viewmodel#resolveViewModel(kotlin.reflect.KClass<0:0>;androidx.lifecycle.ViewModelStore;kotlin.String?;androidx.lifecycle.viewmodel.CreationExtras;org.koin.core.qualifier.Qualifier?;org.koin.core.scope.Scope;kotlin.Function0<org.koin.core.parameter.ParametersHolder>?){0§<androidx.lifecycle.ViewModel>}0:0 + 711
at 33 Officine.debug.dylib 0x106ff40fb kfun:com.shabakett.officine#App(com.shabakett.officine.core.navigation.screen.NavigationViewModel?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){} + 2375
at 34 Officine.debug.dylib 0x1076ae8e3 kfun:com.shabakett.officine.ComposableSingletons$MainViewControllerKt.$lambda$0#internal + 411
at 35 Officine.debug.dylib 0x1076ae9b3 kfun:com.shabakett.officine.ComposableSingletons$MainViewControllerKt.$$lambda$0$FUNCTION_REFERENCE$0.invoke#internal + 95
at 36 Officine.debug.dylib 0x1076aea67 kfun:com.shabakett.officine.ComposableSingletons$MainViewControllerKt.$$lambda$0$FUNCTION_REFERENCE$0.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 37 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 38 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 39 Officine.debug.dylib 0x108021667 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 40 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 41 Officine.debug.dylib 0x107efdee3 kfun:androidx.compose.runtime#CompositionLocalProvider(kotlin.Array<out|androidx.compose.runtime.ProvidedValue<>>...;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 611
at 42 Officine.debug.dylib 0x108b88057 kfun:androidx.compose.ui.scene.ComposeHostingViewController.ProvideContainerCompositionLocals#internal + 1875
at 43 Officine.debug.dylib 0x108b890df kfun:androidx.compose.ui.scene.ComposeHostingViewController.createMediator$lambda$4#internal + 475
at 44 Officine.debug.dylib 0x108b8ac4b kfun:androidx.compose.ui.scene.ComposeHostingViewController.$createMediator$lambda$4$FUNCTION_REFERENCE$10.invoke#internal + 115
at 45 Officine.debug.dylib 0x108b8ad73 kfun:androidx.compose.ui.scene.ComposeHostingViewController.$createMediator$lambda$4$FUNCTION_REFERENCE$10.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 46 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 47 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 48 Officine.debug.dylib 0x108021667 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 49 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 50 Officine.debug.dylib 0x108aed98f kfun:androidx.compose.ui.layout#OverlayLayout(androidx.compose.ui.Modifier;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 3159
at 51 Officine.debug.dylib 0x108b35d9f kfun:androidx.compose.ui.viewinterop#TrackInteropPlacementContainer__at__androidx.compose.ui.viewinterop.InteropContainer(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 1947
at 52 Officine.debug.dylib 0x108b9be57 kfun:androidx.compose.ui.scene.ComposeSceneMediator.setContent$lambda$16$lambda$15$lambda$14$lambda$13#internal + 507
at 53 Officine.debug.dylib 0x108ba1807 kfun:androidx.compose.ui.scene.ComposeSceneMediator.$setContent$lambda$16$lambda$15$lambda$14$lambda$13$FUNCTION_REFERENCE$40.invoke#internal + 119
at 54 Officine.debug.dylib 0x108ba195b kfun:androidx.compose.ui.scene.ComposeSceneMediator.$setContent$lambda$16$lambda$15$lambda$14$lambda$13$FUNCTION_REFERENCE$40.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 55 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 56 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 57 Officine.debug.dylib 0x108021667 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 58 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 59 Officine.debug.dylib 0x108ae87d7 kfun:androidx.compose.ui.layout#OffsetToFocusedRect(androidx.compose.ui.platform.PlatformInsets;kotlin.Function0<androidx.compose.ui.geometry.Rect?>;androidx.compose.ui.unit.IntSize?;kotlin.time.Duration;kotlin.Function0<kotlin.Unit>;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 8051
at 60 Officine.debug.dylib 0x108b95aef kfun:androidx.compose.ui.scene.ComposeSceneMediator.FocusAboveKeyboardIfNeeded#internal + 3683
at 61 Officine.debug.dylib 0x108b9c14b kfun:androidx.compose.ui.scene.ComposeSceneMediator.setContent$lambda$16$lambda$15$lambda$14#internal + 639
at 62 Officine.debug.dylib 0x108ba1a07 kfun:androidx.compose.ui.scene.ComposeSceneMediator.$setContent$lambda$16$lambda$15$lambda$14$FUNCTION_REFERENCE$41.invoke#internal + 119
at 63 Officine.debug.dylib 0x108ba1b5b kfun:androidx.compose.ui.scene.ComposeSceneMediator.$setContent$lambda$16$lambda$15$lambda$14$FUNCTION_REFERENCE$41.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 64 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 65 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 66 Officine.debug.dylib 0x108021667 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 67 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 68 Officine.debug.dylib 0x107efdee3 kfun:androidx.compose.runtime#CompositionLocalProvider(kotlin.Array<out|androidx.compose.runtime.ProvidedValue<
>>...;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 611
at 69 Officine.debug.dylib 0x108b94b5b kfun:androidx.compose.ui.scene.ComposeSceneMediator.ProvideComposeSceneMediatorCompositionLocals#internal + 1567
at 70 Officine.debug.dylib 0x108b9c43f kfun:androidx.compose.ui.scene.ComposeSceneMediator.setContent$lambda$16$lambda$15#internal + 639
at 71 Officine.debug.dylib 0x108ba1c07 kfun:androidx.compose.ui.scene.ComposeSceneMediator.$setContent$lambda$16$lambda$15$FUNCTION_REFERENCE$42.invoke#internal + 119
at 72 Officine.debug.dylib 0x108ba1d5b kfun:androidx.compose.ui.scene.ComposeSceneMediator.$setContent$lambda$16$lambda$15$FUNCTION_REFERENCE$42.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 73 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 74 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 75 Officine.debug.dylib 0x108021667 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 76 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 77 Officine.debug.dylib 0x107efe25f kfun:androidx.compose.runtime#CompositionLocalProvider(androidx.compose.runtime.ProvidedValue<>;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 611
at 78 Officine.debug.dylib 0x108b1a887 kfun:androidx.compose.ui.scene.BaseComposeScene.setContent$lambda$0#internal + 531
at 79 Officine.debug.dylib 0x108b1b567 kfun:androidx.compose.ui.scene.BaseComposeScene.$setContent$lambda$0$FUNCTION_REFERENCE$6.invoke#internal + 119
at 80 Officine.debug.dylib 0x108b1b6bb kfun:androidx.compose.ui.scene.BaseComposeScene.$setContent$lambda$0$FUNCTION_REFERENCE$6.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 81 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 82 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 83 Officine.debug.dylib 0x108021667 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 84 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 85 Officine.debug.dylib 0x108ad85d7 kfun:androidx.compose.ui.platform#ProvidePlatformCompositionLocals(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 775
at 86 Officine.debug.dylib 0x108b13e03 kfun:androidx.compose.ui.platform.setContent$lambda$3$lambda$2$lambda$1#internal + 443
at 87 Officine.debug.dylib 0x108b14cf7 kfun:androidx.compose.ui.platform.$setContent$lambda$3$lambda$2$lambda$1$FUNCTION_REFERENCE$3.invoke#internal + 115
at 88 Officine.debug.dylib 0x108b14e1f kfun:androidx.compose.ui.platform.$setContent$lambda$3$lambda$2$lambda$1$FUNCTION_REFERENCE$3.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 89 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 90 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 91 Officine.debug.dylib 0x108021667 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 92 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 93 Officine.debug.dylib 0x107efdee3 kfun:androidx.compose.runtime#CompositionLocalProvider(kotlin.Array<out|androidx.compose.runtime.ProvidedValue<
>>...;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 611
at 94 Officine.debug.dylib 0x108aa3db3 kfun:androidx.compose.ui.platform#ProvideCommonCompositionLocals(androidx.compose.ui.node.Owner;androidx.compose.ui.platform.UriHandler;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 3871
at 95 Officine.debug.dylib 0x108b143c3 kfun:androidx.compose.ui.platform.setContent$lambda$3$lambda$2#internal + 1355
at 96 Officine.debug.dylib 0x108b14ecb kfun:androidx.compose.ui.platform.$setContent$lambda$3$lambda$2$FUNCTION_REFERENCE$4.invoke#internal + 119
at 97 Officine.debug.dylib 0x108b1501f kfun:androidx.compose.ui.platform.$setContent$lambda$3$lambda$2$FUNCTION_REFERENCE$4.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 98 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 99 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 100 Officine.debug.dylib 0x108021667 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 101 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 102 Officine.debug.dylib 0x108b139eb kfun:androidx.compose.ui.platform.provide#internal + 1287
at 103 Officine.debug.dylib 0x108b146e7 kfun:androidx.compose.ui.platform.setContent$lambda$3#internal + 687
at 104 Officine.debug.dylib 0x108b148af kfun:androidx.compose.ui.platform.$setContent$lambda$3$FUNCTION_REFERENCE$1.invoke#internal + 123
at 105 Officine.debug.dylib 0x108b14a2f kfun:androidx.compose.ui.platform.$setContent$lambda$3$FUNCTION_REFERENCE$1.$invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159
at 106 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 107 Officine.debug.dylib 0x1080135c3 kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 607
at 108 Officine.debug.dylib 0x108021667 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 109 Officine.debug.dylib 0x107c5588b kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115
at 110 Officine.debug.dylib 0x108025b77 kfun:androidx.compose.runtime#invokeComposable(androidx.compose.runtime.Composer;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 215
at 111 Officine.debug.dylib 0x107edbd63 kfun:androidx.compose.runtime.ComposerImpl.doCompose#internal + 2563
at 112 Officine.debug.dylib 0x107edaef7 kfun:androidx.compose.runtime.ComposerImpl#composeContent(androidx.compose.runtime.collection.ScopeMap<androidx.compose.runtime.RecomposeScopeImpl,kotlin.Any>;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 283
at 113 Officine.debug.dylib 0x107eea4a7 kfun:androidx.compose.runtime.CompositionImpl#composeContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 1119
at 114 Officine.debug.dylib 0x10802d86f kfun:androidx.compose.runtime.ControlledComposition#composeContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}-trampoline + 99
at 115 Officine.debug.dylib 0x107f19283 kfun:androidx.compose.runtime.Recomposer#composeInitial(androidx.compose.runtime.ControlledComposition;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 911
at 116 Officine.debug.dylib 0x10802cbe7 kfun:androidx.compose.runtime.CompositionContext#composeInitial(androidx.compose.runtime.ControlledComposition;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}-trampoline + 67
at 117 Officine.debug.dylib 0x107ee9797 kfun:androidx.compose.runtime.CompositionImpl.composeInitial#internal + 323
at 118 Officine.debug.dylib 0x107ee953b kfun:androidx.compose.runtime.CompositionImpl#setContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 95
at 119 Officine.debug.dylib 0x10802d27b kfun:androidx.compose.runtime.Composition#setContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}-trampoline + 99
at 120 Officine.debug.dylib 0x108b1349b kfun:androidx.compose.ui.platform#setContent__at__androidx.compose.ui.node.RootNodeOwner(androidx.compose.runtime.CompositionContext;kotlin.Function0<androidx.compose.runtime.CompositionLocalContext?>;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}androidx.compose.runtime.Composition + 535
at 121 Officine.debug.dylib 0x108b34003 kfun:androidx.compose.ui.scene.PlatformLayersComposeSceneImpl.createComposition#internal + 287
at 122 Officine.debug.dylib 0x108c1ce5b kfun:androidx.compose.ui.scene.BaseComposeScene#createComposition(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}androidx.compose.runtime.Composition-trampoline + 67
at 123 Officine.debug.dylib 0x108b16f3b kfun:androidx.compose.ui.scene.BaseComposeScene#setContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 1755
at 124 Officine.debug.dylib 0x108c181db kfun:androidx.compose.ui.scene.ComposeScene#setContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}-trampoline + 99
at 125 Officine.debug.dylib 0x108b9c66b kfun:androidx.compose.ui.scene.ComposeSceneMediator.setContent$lambda$16#internal + 439

-- End of trace --

To Reproduce

Implement Koin for dependency injection in a KMM project.
Create a ViewModel interface HousesViewModel and implement it with HousesViewModelImpl.
Bind the implementation to the interface using Koin.
Use the ViewModel in the Android Compose NavHost graph.
Run the application on Android (works as expected).
Run the application on iOS (error occurs).

Expected behavior
A clear and concise description of what you expected to happen.

Koin module and version:

agp = "8.6.1"
kotlin = "2.1.10"
kotlin-serialization = "1.7.3"
navigation = "2.8.0-alpha11"
kotlinx-datetime = "0.6.1"

Github

napier = "2.7.1"
konnectivity = "0.1-alpha01"
human-readable = "1.10.0"

DI

koin = "4.0.2"

#Api
ktor = "3.0.3"

datastore = "1.1.2"

paging-version = "3.3.0-alpha02-0.5.1"

google-services = "4.4.2"

firebaseBom = "33.8.0"
firebase-crashlytics-plugin = "3.0.2"

kmp-notifier = "1.4.0"

androidx-lifecycle-viewmodel = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-viewmodel", version.ref = "androidx-lifecycle" }
androidx-lifecycle-runtime-compose = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidx-lifecycle" }

kotlin-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlin-serialization" }

navigation-compose = { module = "org.jetbrains.androidx.navigation:navigation-compose", version.ref = "navigation" }

napier = { module = "io.github.aakira:napier", version.ref = "napier" }

koin-test = { module = "io.insert-koin:koin-test", version.ref = "koin" }
koin-core = { module = "io.insert-koin:koin-core", version.ref = "koin" }
koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin" }
koin-androidx-compose = { module = "io.insert-koin:koin-androidx-compose", version.ref = "koin" }
koin-compose = { module = "io.insert-koin:koin-compose", version.ref = "koin" }
koin-compose-viewmodel = { module = "io.insert-koin:koin-compose-viewmodel", version.ref = "koin" }

ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }
ktor-client-darwin = { module = "io.ktor:ktor-client-darwin", version.ref = "ktor" }
ktor-client-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" }
ktor-client-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" }
ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }
ktor-client-auth = { module = "io.ktor:ktor-client-auth", version.ref = "ktor" }
ktor-client-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" }

datastore = { module = "androidx.datastore:datastore", version.ref = "datastore" }
datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastore" }

konnectivity = { module = "com.plusmobileapps:konnectivity", version.ref = "konnectivity" }

kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinx-datetime" }

firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBom" }
firebase-analytics = { module = "com.google.firebase:firebase-analytics" }
firebase-crashlyticsKtx = { module = "com.google.firebase:firebase-crashlytics-ktx" }

kmp-notifier = { module = "io.github.mirzemehdi:kmpnotifier", version.ref = "kmp-notifier" }

[plugins]
androidApplication = { id = "com.android.application", version.ref = "agp" }
androidLibrary = { id = "com.android.library", version.ref = "agp" }
jetbrainsCompose = { id = "org.jetbrains.compose", version.ref = "compose-plugin" }

Firebase

firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebase-crashlytics-plugin"}

compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }

Snippet or Sample project to help reproduce

### AppModule

val appModule = module {
singleOf(::OverlayServiceImpl).bind()
singleOf(::AlertDialogServiceImpl).bind()
singleOf(::ToastServiceImpl).bind()

singleOf(::ClientsServiceImpl).bind<ClientsService>()
singleOf(::PharmaciesServiceImpl).bind<PharmaciesService>()
singleOf(::SuppliersServiceImpl).bind<SuppliersService>()

singleOf(::SaleServiceImpl).bind<SaleService>()
singleOf(::PurchaseServiceImpl).bind<PurchaseService>()
singleOf(::ProductServiceImpl).bind<ProductService>()
singleOf(::EchangeServiceImpl).bind<EchangeService>()
singleOf(::StockServiceImpl).bind<StockService>()
singleOf(::BordereauServiceImpl).bind<BordereauService>()
singleOf(::ChifaServiceImpl).bind<ChifaService>()
singleOf(::StatsServiceImpl).bind<StatsService>()
singleOf(::InventaireServiceImpl).bind<InventaireService>()
singleOf(::SkuServiceImpl).bind<SkuService>()
singleOf(::BugReportServiceImpl).bind<BugReportService>()

singleOf(::MessagerieServiceImpl).bind<MessagerieService>()
singleOf(::GroupServiceImpl).bind<GroupService>()

singleOf(::PocketBaseAuthServiceImpl).bind<PocketBaseAuthService>()
singleOf(::RealtimeStreamServiceImpl).bind<RealtimeStreamService>()

singleOf(::MessagerieUserServiceImpl).bind<MessagerieUserService>()

singleOf(::NotificationServiceImpl).bind<NotificationService>()

singleOf(::DefaultNavigator).bind<Navigator>()

single { Konnectivity() }

}

### AuthModule

val authModule = module {
single { AuthServiceImpl(get()) }.bind()
single { createHttpClient() }
}

### ViewModuleModel

val viewModelModule = module {
viewModelOf(::NavigationViewModel)

viewModelOf(::SignInViewModel)
viewModelOf(::ForgotPasswordViewModel)

viewModelOf(::HomeViewModel)
viewModelOf(::NotificationViewModel)
viewModelOf(::SettingViewModel)

viewModelOf(::ThirdPartiesViewModel)
viewModelOf(::ClientDetailsViewModel)
viewModelOf(::SupplierDetailsViewModel)
viewModelOf(::PharmacyDetailsViewModel)

viewModelOf(::SalesViewModel)
viewModelOf(::SaleDetailsViewModel)

viewModelOf(::PurchasesViewModel)
viewModelOf(::PurchaseDetailsViewModel)

viewModelOf(::EchangesViewModel)
viewModelOf(::EchangeExitDetailsViewModel)
viewModelOf(::EchangeEntranceDetailsViewModel)

viewModelOf(::StocksViewModel)

viewModelOf(::BordereauxViewModel)

viewModelOf(::BordereauDetailsViewModel)

viewModelOf(::FactureDetailsViewModel)

viewModelOf(::InventaireViewModel)

viewModelOf(::StockDetailsViewModel)

viewModelOf(::StatsViewModel)

viewModelOf(::BugReportViewModel)

viewModelOf(::MessagerieViewModel)
viewModelOf(::ConversationDetailsViewModel)
viewModelOf(::CreateNewConversationViewModel)

}

### SharedRepositoryModule

expect val sharedRepositoryModule: Module

### InitKoin

fun initKoin(config: KoinAppDeclaration? = null) {
startKoin {
config?.invoke(this)
modules(
appModule,
authModule,
sharedRepositoryModule,
viewModelModule
)
}
}

MainViewController

fun MainViewController() = ComposeUIViewController(
configure = {
DeviceInfo()
}
) {
App()
}

SharedRepositoryModule.ios

actual val sharedRepositoryModule = module {
single { PreferencesRepository(createDataStore()) }
}

iOSApp

class AppDelegate: NSObject, UIApplicationDelegate {

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
    FirebaseApp.configure() //important
    //By default showPushNotification value is true.
    //When set showPushNotification to false foreground push  notification will not be shown.
    //You can still get notification content using #onPushNotification listener method.
    NotifierManager.shared.initialize(configuration: NotificationPlatformConfigurationIos(
        showPushNotification: true,
        askNotificationPermissionOnStart: true,
        notificationSoundName: "default")
    )

    return true
}

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Foundation.Data) {
        Messaging.messaging().apnsToken = deviceToken
    }

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) async -> UIBackgroundFetchResult {
    NotifierManager.shared.onApplicationDidReceiveRemoteNotification(userInfo: userInfo)
    return UIBackgroundFetchResult.newData
}

}

@main
struct iOSApp: App {

@UIApplicationDelegateAdaptor(AppDelegate.self) var delegate

init() {
    InitKoinKt.doInitKoin()
}

var body: some Scene {
    WindowGroup {
        ContentView()
    }
}

}

I'm blocked on this since 2 weeks now... I don't know what to do...

Sorry for thethis very long message.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant