You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KMP Windows端使用Navigation3打包后运行启动失败

KMP项目Windows打包exe后启动报错

问题描述

基于Navigation3开发的KMP项目,在Android Studio中运行完全正常,执行gradle createDistributable命令无异常,但执行gradle packageReleaseDistributionForCurrentOS打包生成exe安装包并安装后,启动程序时出现报错。

相关代码

First Screen

@Composable
fun FirstScreen() {
    Column(
        modifier = Modifier.fillMaxSize()
    ) {
        Toolbar()
    }
}

@OptIn(ExperimentalMaterial3Api::class)
@Composable
private fun Toolbar() {
    TopAppBar(
        title = { Text("First") },
        colors = TopAppBarDefaults.topAppBarColors(
            containerColor = MaterialTheme.colorScheme.primary,
            titleContentColor = MaterialTheme.colorScheme.onPrimary,
            navigationIconContentColor = MaterialTheme.colorScheme.onPrimary,
            actionIconContentColor = MaterialTheme.colorScheme.onPrimary
        )
    )
}

AppNav

@Serializable
data object First : NavKey

@Composable
fun EntryProviderScope<NavKey>.FirstEntry(backStack: NavBackStack<NavKey>) {
    entry<First> {
        FirstScreen()
    }
}
@Composable
fun NavDisplay(backStack: NavBackStack<NavKey>) {
    val animationSpec = tween<IntOffset>(500)

    NavDisplay(
        backStack = backStack,
        onBack = { backStack.removeLastOrNull() },
        entryDecorators = listOf(
            rememberSaveableStateHolderNavEntryDecorator(),
            rememberViewModelStoreNavEntryDecorator()
        ),
        entryProvider = entryProvider {
            FirstEntry(backStack)
        },
        transitionSpec = {
            slideInHorizontally(
                initialOffsetX = { it },
                animationSpec = animationSpec
            ) togetherWith slideOutHorizontally(
                targetOffsetX = { -it },
                animationSpec = animationSpec
            )
        },
        popTransitionSpec = {
            slideInHorizontally(
                initialOffsetX = { -it },
                animationSpec = animationSpec
            ) togetherWith slideOutHorizontally(
                targetOffsetX = { it },
                animationSpec = animationSpec
            )
        },
        predictivePopTransitionSpec = {
            slideInHorizontally(
                initialOffsetX = { -it },
                animationSpec = animationSpec
            ) togetherWith slideOutHorizontally(
                targetOffsetX = { it },
                animationSpec = animationSpec
            )
        }
    )
}

App

@Composable
fun App() = KoinApplication(
    configuration = KoinConfiguration { modules(appModule) },
    content = {
        MaterialTheme {
            val backStack = rememberNavBackStack(
                SavedStateConfiguration {
                    serializersModule = SerializersModule {
                        polymorphic(NavKey::class) {
                            subclass(First::class, First.serializer())
                        }
                    }
                },
                First
            )

            NavDisplay(backStack)
        }
    }
)

报错截图

Windows启动报错


内容的提问来源于stack exchange,提问作者Sam Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 15:17:31