Jimmy Nelle
05/09/2025, 8:47 AMKoinMultiplatformApplication
and getting the whole time the following error only on iOS:
[INFO] [Koin] Started 4 definitions in 0.007 ms
Uncaught Kotlin exception: kotlin.IllegalStateException: Koin context has not been initialized in rememberKoinApplication
Check the 🧵 for more contextJimmy Nelle
05/09/2025, 8:49 AM@OptIn(KoinExperimentalAPI::class)
@Composable
@Preview
fun App() {
KoinMultiplatformApplication(config = koinConfiguration {
modules(
nativeAuthModule(),
module {
single<Config> {
AppConfig.config
}
},
commonModules()
)
}) {
val navController = rememberNavController()
setSingletonImageLoaderFactory { context ->
newImageLoader(context, true)
}
AppTheme {
RootNavigation(navController)
}
}
}
I'm using KoinMultiplatformApplication
in my App.kt and I'm only importing my modules. I receive the error only on iOS on Android everything works fine. I'm using the following dependencies in my project with version 4.1.0-Beta8
# KOIN
koin-core = { module = "io.insert-koin:koin-core", 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" }
Jimmy Nelle
05/09/2025, 8:52 AMarnaud.giuliani
05/09/2025, 8:53 AMJimmy Nelle
05/09/2025, 8:54 AMarnaud.giuliani
05/09/2025, 9:07 AMJimmy Nelle
05/09/2025, 9:10 AM@Composable
fun RootNavigation(
navController: NavHostController
) {
val viewModel = koinViewModel<AuthViewModel>()
val config = koinInject<Config>()
val lifecycleOwner = LocalLifecycleOwner.current
val credentials =
viewModel.credentials.collectAsStateWithLifecycle().value
val signInState =
viewModel.signInstate.collectAsStateWithLifecycle().value
But I don't think it does provoke an injection before Koin contextarnaud.giuliani
05/09/2025, 9:12 AMJimmy Nelle
05/09/2025, 9:23 AMJimmy Nelle
05/09/2025, 9:32 AMarnaud.giuliani
05/09/2025, 10:03 AMarnaud.giuliani
05/09/2025, 10:13 AMarnaud.giuliani
05/09/2025, 10:13 AMJimmy Nelle
05/09/2025, 10:38 AMJimmy Nelle
05/09/2025, 2:22 PMimport SwiftUI
import ComposeApp
@main
struct iOSApp: App {
init() {
MainViewControllerKt.initialise()
}
var body: some Scene {
WindowGroup {
ContentView()
.privacySensitive()
}
}
}
After:
import SwiftUI
import ComposeApp
@main
struct iOSApp: App {
init() {
MainViewControllerKt.initialise()
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}