Kotlin Multiplatform中Moko Resource图片加载参数传递错误排查
解决Kotlin Multiplatform中Moko Resource图片加载的"No value passed for parameter 'res'"错误
问题根源
你混淆了Jetpack Compose原生的painterResource与Moko Resource提供的专属扩展函数。Compose原生函数要求传入Int类型的资源ID,而Moko Resource生成的SharedRes.images.house_01是ImageResource类型,类型不匹配导致编译器抛出混淆的错误提示。
解决方案
导入正确的扩展函数
确保代码中导入的是Moko Resource的Compose扩展包,而非Compose原生的:import dev.icerock.moko.resources.compose.painterResource修正Image组件代码
直接将ImageResource实例传入painterResource,无需指定id参数:Image( painter = painterResource(SharedRes.images.house_01), contentDescription = null, contentScale = ContentScale.Crop )确认依赖配置
检查shared模块的build.gradle是否添加了Moko Resource的Compose依赖,若未添加则补充:dependencies { // 版本号请与你使用的Moko Resource版本保持一致 implementation("dev.icerock.moko:resources-compose:0.23.0") }验证资源路径
确认图片资源已正确放置在shared模块的src/commonMain/resources/MR/images目录下,文件名与house_01完全匹配(注意大小写敏感)。
内容的提问来源于stack exchange,提问作者William Honorio
相关产品推荐
相关产品推荐

