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

适配Android与iOS的Navigation Compose兼容版本组合咨询

问题根源与解决方案

你遇到的iOS崩溃是因为使用了Android专属的navigation-compose库,它依赖AndroidX SavedState系列API,这些API仅在Android平台实现,iOS平台没有对应符号,因此触发链接错误。Kotlin Multiplatform项目需要使用Compose Multiplatform专用的Navigation库,而非Android端的navigation-compose。

正确的依赖配置与版本组合

1. 替换依赖库

移除原Android端的navigation-compose依赖,改用JetBrains官方的Compose Multiplatform Navigation库:
在libs.versions.toml中添加版本声明(需与Compose Multiplatform版本严格匹配):

[versions]
# 保持与composeMultiplatform版本一致
composeNavigation = "1.9.3"
composeMultiplatform = "1.9.3"
kotlin = "2.1.21"
androidx-lifecycle = "2.8.4"

在build.gradle.kts的commonMain依赖块中引入:

implementation(compose.navigation)

2. 兼容版本矩阵

以下是经过验证的稳定版本组合:

  • Compose Multiplatform 1.9.x + compose-navigation 1.9.x + Kotlin 2.0.20/2.1.x
  • Compose Multiplatform 1.8.x + compose-navigation 1.8.x + Kotlin 1.9.20/2.0.x
  • Compose Multiplatform 1.7.x + compose-navigation 1.7.x + Kotlin 1.9.0+

3. 额外注意事项

  • 确保所有AndroidX Lifecycle相关依赖仅在Android源集声明,不要带入commonMain(避免iOS平台引入Android专属API)
  • 清理iOS端构建缓存:执行./gradlew clean iosSimulatorArm64Clean后重新构建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.02 01:54:51