Kotlin Multiplatform Compose iOS端启动崩溃(clickable缺失)求助
问题:Kotlin Multiplatform Compose项目iOS模拟器崩溃,提示找不到clickable函数符号
Android端运行正常,但iPhone模拟器启动时直接崩溃,按钮无法渲染,报错显示找不到clickable函数对应符号。
代码示例
@Composable @Preview fun App() { KoinContext { MaterialTheme { MainScreen() } } } @Composable fun MainScreen() { val navController = rememberNavController() Button( modifier = Modifier.padding(end = 16.dp), onClick = { navController.navigate("events") }, colors = ButtonDefaults.buttonColors(backgroundColor = Color.Gray) ) { Text(text = "Go to Events", color = Color.White) } }
错误日志
Uncaught Kotlin exception: kotlin.native.internal.IrLinkageError: Function 'clickable' can not be called: No function found for symbol 'androidx.compose.foundation/clickable|clickable@androidx.compose.ui.Modifier(androidx.compose.foundation.interaction.MutableInteractionSource;androidx.compose.foundation.Indication?;kotlin.Boolean;kotlin.String?;androidx.compose.ui.semantics.Role?;kotlin.Function0<kotlin.Unit>){}[0]' at 0 isekai.debug.dylib 0x10ab75a0d kfun:kotlin.Throwable#<init>(kotlin.String?){} + 93 ...(省略后续栈帧)
解决方案
检查Compose Multiplatform依赖配置:确保共享模块的
commonMain依赖中包含androidx.compose.foundation:foundation库,clickable函数属于这个模块。在共享模块的build.gradle.kts中添加或确认以下依赖:commonMain.dependencies { implementation("androidx.compose.foundation:foundation:1.5.1") // 版本需与其他Compose依赖一致 implementation("androidx.compose.material:material:1.5.1") implementation("androidx.compose.ui:ui:1.5.1") }统一Compose依赖版本:所有Compose相关的依赖(foundation、material、ui等)必须使用完全相同的版本,版本不匹配会导致符号链接失败。建议使用版本变量管理,避免手动输入不一致。
清理缓存并重新构建:执行命令
./gradlew clean清理项目缓存,然后重新构建iOS目标。缓存残留可能导致依赖未正确引入到iOS构建中。确认Navigation依赖的Multiplatform兼容性:如果使用
rememberNavController,需确保使用的是适配KMP的Navigation库(如dev.chrisbanes.compose:compose-navigation),而非仅支持Android的androidx.navigation:navigation-compose,避免间接引发依赖缺失问题。
内容的提问来源于stack exchange,提问作者Victor
相关产品推荐
相关产品推荐

