Skip to content

2.0.0 Annotations KMP Component Scan Android not working correctly after being configured correctly #249

@Anthony17serrato

Description

@Anthony17serrato

Describe the bug
Runtime exception where a @singleton annotated class is not found by component scan in the android source set.

To Reproduce
Steps to reproduce the behavior:
Both common and android source set modules are annotated with @componentscan

Common

@Module
@ComponentScan("com.serratocreations.phovo.data.photos")
internal expect class PhotosDataPlatformModule()

@Module(includes = [PhotosDataPlatformModule::class])
@ComponentScan("com.serratocreations.phovo.data.photos") // disabling component scan here results in successful platform scan but unsuccessful common scan
class PhotosDataModule

Android

@Module
@ComponentScan("com.serratocreations.phovo.data.photos")
internal actual class PhotosDataPlatformModule {
    @Singleton
    fun httpClient() = HttpClient(OkHttp) {
        install(ContentNegotiation) {
            json()
        }
    }
}

Follow annotations github example to configure KMP annotations https://github.com/Anthony17serrato/Phovo/pull/18/files#r1986202408
Annotate android source set class with singleton https://github.com/Anthony17serrato/Phovo/pull/18/files#r1986201561
Runtime exception
Annotate desktop source set class with singleton https://github.com/Anthony17serrato/Phovo/pull/18/files#r1986202209
No runtime exception on desktop
Expected behavior
Actual component scan on android properly scans @singleton annotated class

Koin module and version:
koin-annotations:2.0.0

Snippet or Sample project to help reproduce
Anthony17serrato/Phovo#18

18:23:08.741  E  FATAL EXCEPTION: main (Ask Gemini)
                 Process: com.serratocreations.phovo, PID: 4943
                 java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
                 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:590)
                 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
                 Caused by: java.lang.reflect.InvocationTargetException
                 	at java.lang.reflect.Method.invoke(Native Method)
                 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
                 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886) 
                 Caused by: org.koin.core.error.InstanceCreationException: Could not create instance for '[Factory: 'com.serratocreations.phovo.feature.photos.ui.PhovoViewModel']'
                 	at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:58)
                 	at org.koin.core.instance.FactoryInstanceFactory.get(FactoryInstanceFactory.kt:38)
                 	at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:113)
                 	at org.koin.core.scope.Scope.resolveFromRegistry(Scope.kt:325)
                 	at org.koin.core.scope.Scope.resolveFromContext(Scope.kt:315)
                 	at org.koin.core.scope.Scope.stackParametersCall(Scope.kt:285)
                 	at org.koin.core.scope.Scope.resolveInstance(Scope.kt:263)
                 	at org.koin.core.scope.Scope.resolve(Scope.kt:236)
                 	at org.koin.core.scope.Scope.getWithParameters(Scope.kt:227)
                 	at org.koin.viewmodel.factory.KoinViewModelFactory.create(KoinViewModelFactory.kt:41)
                 	at androidx.lifecycle.viewmodel.ViewModelProviderImpl_androidKt.createViewModel(ViewModelProviderImpl.android.kt:34)
                 	at androidx.lifecycle.viewmodel.ViewModelProviderImpl.getViewModel$lifecycle_viewmodel_release(ViewModelProviderImpl.kt:65)
                 	at androidx.lifecycle.viewmodel.ViewModelProviderImpl.getViewModel$lifecycle_viewmodel_release$default(ViewModelProviderImpl.kt:47)
                 	at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.android.kt:91)
                 	at org.koin.viewmodel.GetViewModelKt.resolveViewModel(GetViewModel.kt:60)
                 	at com.serratocreations.phovo.feature.photos.ui.PhotosScreenKt.PhotosRoute(PhotosScreen.kt:129)
                 	at com.serratocreations.phovo.feature.photos.navigation.ComposableSingletons$ForYouNavigationKt$lambda-1$1.invoke(ForYouNavigation.kt:18)
                 	at com.serratocreations.phovo.feature.photos.navigation.ComposableSingletons$ForYouNavigationKt$lambda-1$1.invoke(ForYouNavigation.kt:17)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:139)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                 	at androidx.navigation.compose.NavHostKt$NavHost$32$1.invoke(NavHost.kt:694)
                 	at androidx.navigation.compose.NavHostKt$NavHost$32$1.invoke(NavHost.kt:693)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                 	at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:401)
                 	at androidx.compose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider(SaveableStateHolder.kt:85)
                 	at androidx.navigation.compose.NavBackStackEntryProviderKt.SaveableStateProvider(NavBackStackEntryProvider.kt:65)
                 	at androidx.navigation.compose.NavBackStackEntryProviderKt.access$SaveableStateProvider(NavBackStackEntryProvider.kt:1)
                 	at androidx.navigation.compose.NavBackStackEntryProviderKt$LocalOwnersProvider$1.invoke(NavBackStackEntryProvider.kt:52)
                 	at androidx.navigation.compose.NavBackStackEntryProviderKt$LocalOwnersProvider$1.invoke(NavBackStackEntryProvider.kt:51)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                 	at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:380)
                 	at androidx.navigation.compose.NavBackStackEntryProviderKt.LocalOwnersProvider(NavBackStackEntryProvider.kt:47)
                 	at androidx.navigation.compose.NavHostKt$NavHost$32.invoke(NavHost.kt:693)
18:23:08.746  E  	at androidx.navigation.compose.NavHostKt$NavHost$32.invoke(NavHost.kt:674) (Ask Gemini)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:139)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                 	at androidx.compose.animation.AnimatedContentKt$AnimatedContent$6$1$5.invoke(AnimatedContent.kt:803)
                 	at androidx.compose.animation.AnimatedContentKt$AnimatedContent$6$1$5.invoke(AnimatedContent.kt:792)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:118)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                 	at androidx.compose.animation.AnimatedVisibilityKt.AnimatedEnterExitImpl(AnimatedVisibility.kt:771)
                 	at androidx.compose.animation.AnimatedContentKt$AnimatedContent$6$1.invoke(AnimatedContent.kt:774)
                 	at androidx.compose.animation.AnimatedContentKt$AnimatedContent$6$1.invoke(AnimatedContent.kt:757)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                 	at androidx.compose.animation.AnimatedContentKt.AnimatedContent(AnimatedContent.kt:816)
                 	at androidx.navigation.compose.NavHostKt.NavHost(NavHost.kt:646)
                 	at androidx.navigation.compose.NavHostKt.NavHost(NavHost.kt:356)
                 	at com.serratocreations.phovo.navigation.PhovoNavHostKt.PhovoNavHost(PhovoNavHost.kt:28)
                 	at com.serratocreations.phovo.ui.PhovoAppKt$PhovoApp$5$2.invoke(PhovoApp.kt:169)
                 	at com.serratocreations.phovo.ui.PhovoAppKt$PhovoApp$5$2.invoke(PhovoApp.kt:121)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:118)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                 	at androidx.compose.material3.ScaffoldKt$ScaffoldLayout$1$1$bodyContentPlaceables$1.invoke(Scaffold.kt:261)
                 	at androidx.compose.material3.ScaffoldKt$ScaffoldLayout$1$1$bodyContentPlaceables$1.invoke(Scaffold.kt:238)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                 	at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$subcompose$3$1$1.invoke(SubcomposeLayout.kt:1017)
                 	at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$subcompose$3$1$1.invoke(SubcomposeLayout.kt:493)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
                 	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                 	at androidx.compose.runtime.ActualJvm_jvmKt.invokeComposable(ActualJvm.jvm.kt:97)
                 	at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:3595)
                 	at androidx.compose.runtime.ComposerImpl.composeContent$runtime_release(Composer.kt:3522)
                 	at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:743)
                 	at androidx.compose.runtime.Recomposer.composeInitial$runtime_release(Recomposer.kt:1122)
                 	at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime_release(Composer.kt:3876)
                 	at androidx.compose.runtime.CompositionImpl.composeInitial(Composition.kt:649)
                 	at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:635)
                 	at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcomposeInto(SubcomposeLayout.kt:516)
                 	at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.kt:488)
                 	at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.kt:479)
                 	at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.kt:463)
                 	at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$Scope.subcompose(SubcomposeLayout.kt:895)
                 	at androidx.compose.material3.ScaffoldKt$ScaffoldLayout$1$1.invoke-0kLqBqw(Scaffold.kt:238)
                 	at androidx.compose.material3.ScaffoldKt$ScaffoldLayout$1$1.invoke(Scaffold.kt:140)
18:23:08.751  E  	at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$createMeasurePolicy$1.measure-3p2s80s(SubcomposeLayout.kt:725) (Ask Gemini)
                 	at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:316)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:315)
                 	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
                 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
                 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1782)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:40)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:696)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:672)
                 	at androidx.compose.foundation.layout.BoxMeasurePolicy.measure-3p2s80s(Box.kt:151)
                 	at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135)
                 	at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:646)
                 	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:188)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:316)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:315)
                 	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
                 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
                 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1782)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:40)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:696)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:672)
                 	at androidx.compose.foundation.layout.BoxMeasurePolicy.measure-3p2s80s(Box.kt:151)
                 	at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:316)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:315)
                 	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
                 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
18:23:08.767  E  	at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113) (Ask Gemini)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1782)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:40)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:696)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:672)
                 	at androidx.compose.foundation.layout.BoxMeasurePolicy.measure-3p2s80s(Box.kt:151)
                 	at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:316)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:315)
                 	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
                 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
                 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1782)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:40)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:696)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:672)
                 	at androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteScaffoldKt$NavigationSuiteScaffoldLayout$2$1.measure-3p2s80s(NavigationSuiteScaffold.kt:172)
                 	at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:316)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:315)
                 	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
                 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
                 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1782)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:40)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:696)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:672)
                 	at androidx.compose.foundation.layout.BoxMeasurePolicy.measure-3p2s80s(Box.kt:151)
                 	at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135)
                 	at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:646)
                 	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:188)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:316)
18:23:08.772  E  	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:315) (Ask Gemini)
                 	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
                 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
                 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1782)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:40)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:696)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:672)
                 	at androidx.compose.foundation.layout.BoxMeasurePolicy.measure-3p2s80s(Box.kt:151)
                 	at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135)
                 	at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:646)
                 	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:188)
                 	at androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:699)
                 	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:188)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:316)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:315)
                 	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
                 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
                 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1782)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:40)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:696)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:672)
                 	at androidx.compose.ui.layout.RootMeasurePolicy.measure-3p2s80s(RootMeasurePolicy.kt:38)
                 	at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:316)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:315)
                 	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2441)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
                 	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
                 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
                 	at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1782)
18:23:08.781  E  	at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:40) (Ask Gemini)
                 	at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:696)
                 	at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1222)
                 	at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure-sdFAvZA(MeasureAndLayoutDelegate.kt:367)
                 	at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureOnly(MeasureAndLayoutDelegate.kt:622)
                 	at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureOnly(MeasureAndLayoutDelegate.kt:420)
                 	at androidx.compose.ui.platform.AndroidComposeView.onMeasure(AndroidComposeView.android.kt:1370)
                 	at android.view.View.measure(View.java:28114)
                 	at androidx.compose.ui.platform.AbstractComposeView.internalOnMeasure$ui_release(ComposeView.android.kt:309)
                 	at androidx.compose.ui.platform.AbstractComposeView.onMeasure(ComposeView.android.kt:296)
                 	at android.view.View.measure(View.java:28114)
                 	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6989)
                 	at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                 	at android.view.View.measure(View.java:28114)
                 	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6989)
                 	at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1608)
                 	at android.widget.LinearLayout.measureVertical(LinearLayout.java:878)
                 	at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
                 	at android.view.View.measure(View.java:28114)
                 	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6989)
                 	at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                 	at com.android.internal.policy.DecorView.onMeasure(DecorView.java:719)
                 	at android.view.View.measure(View.java:28114)
                 	at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:4823)
                 	at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:3220)
                 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3525)
                 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2917)
                 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10324)
                 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1406)
                 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1415)
                 	at android.view.Choreographer.doCallbacks(Choreographer.java:1015)
                 	at android.view.Choreographer.doFrame(Choreographer.java:945)
                 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1389)
                 	at android.os.Handler.handleCallback(Handler.java:959)
                 	at android.os.Handler.dispatchMessage(Handler.java:100)
                 	at android.os.Looper.loopOnce(Looper.java:232)
                 	at android.os.Looper.loop(Looper.java:317)
                 	at android.app.ActivityThread.main(ActivityThread.java:8705)
                 	... 3 more
                 Caused by: org.koin.core.error.InstanceCreationException: Could not create instance for '[Singleton: 'com.serratocreations.phovo.data.photos.repository.PhovoItemRepository']'
                 	at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:58)
                 	at org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
                 	at org.koin.core.instance.SingleInstanceFactory.get$lambda$0(SingleInstanceFactory.kt:55)
                 	at org.koin.core.instance.SingleInstanceFactory.$r8$lambda$DuRNwghYWsMwMsdJERKYXVNSM_0(Unknown Source:0)
                 	at org.koin.core.instance.SingleInstanceFactory$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
                 	at org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:36)
                 	at org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:53)
                 	at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:113)
                 	at org.koin.core.scope.Scope.resolveFromRegistry(Scope.kt:325)
                 	at org.koin.core.scope.Scope.resolveFromContext(Scope.kt:315)
                 	at org.koin.core.scope.Scope.stackParametersCall(Scope.kt:277)
                 	at org.koin.core.scope.Scope.resolveInstance(Scope.kt:263)
                 	at org.koin.core.scope.Scope.resolve(Scope.kt:236)
18:23:08.788  E  	at org.koin.core.scope.Scope.get(Scope.kt:218) (Ask Gemini)
                 	at org.koin.ksp.generated.PhotosFeatureModuleGencom_serratocreations_phovo_feature_photos_diKt._get_com_serratocreations_phovo_feature_photos_di_PhotosFeatureModule_$lambda$1$lambda$0(PhotosFeatureModuleGencom$serratocreations$phovo$feature$photos$di.kt:17)
                 	at org.koin.ksp.generated.PhotosFeatureModuleGencom_serratocreations_phovo_feature_photos_diKt.$r8$lambda$x7KebKLONOb2neoJ_B9f9XnbZeo(Unknown Source:0)
                 	at org.koin.ksp.generated.PhotosFeatureModuleGencom_serratocreations_phovo_feature_photos_diKt$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
                 	at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:51)
                 	... 227 more
                 Caused by: org.koin.core.error.NoDefinitionFoundException: No definition found for type 'com.serratocreations.phovo.data.photos.db.dao.PhovoItemDao'. Check your Modules configuration and add missing type and/or qualifier!
                 	at org.koin.core.scope.Scope.resolveFromContext(Scope.kt:546)
                 	at org.koin.core.scope.Scope.stackParametersCall(Scope.kt:277)
                 	at org.koin.core.scope.Scope.resolveInstance(Scope.kt:263)
                 	at org.koin.core.scope.Scope.resolve(Scope.kt:236)
                 	at org.koin.core.scope.Scope.get(Scope.kt:218)
                 	at org.koin.ksp.generated.PhotosDataModuleGencom_serratocreations_phovo_data_photos_diKt._get_com_serratocreations_phovo_data_photos_di_PhotosDataModule_$lambda$2$lambda$1(PhotosDataModuleGencom$serratocreations$phovo$data$photos$di.kt:23)
                 	at org.koin.ksp.generated.PhotosDataModuleGencom_serratocreations_phovo_data_photos_diKt.$r8$lambda$dbL--9OV-nTFYg4hxE12dsuMLsU(Unknown Source:0)
                 	at org.koin.ksp.generated.PhotosDataModuleGencom_serratocreations_phovo_data_photos_diKt$$ExternalSyntheticLambda2.invoke(D8$$SyntheticClass:0)
                 	at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:51)
                 	... 244 more

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions