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

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类型,类型不匹配导致编译器抛出混淆的错误提示。

解决方案

  1. 导入正确的扩展函数
    确保代码中导入的是Moko Resource的Compose扩展包,而非Compose原生的:

    import dev.icerock.moko.resources.compose.painterResource
    
  2. 修正Image组件代码
    直接将ImageResource实例传入painterResource,无需指定id参数:

    Image(
        painter = painterResource(SharedRes.images.house_01),
        contentDescription = null,
        contentScale = ContentScale.Crop
    )
    
  3. 确认依赖配置
    检查shared模块的build.gradle是否添加了Moko Resource的Compose依赖,若未添加则补充:

    dependencies {
        // 版本号请与你使用的Moko Resource版本保持一致
        implementation("dev.icerock.moko:resources-compose:0.23.0")
    }
    
  4. 验证资源路径
    确认图片资源已正确放置在shared模块的src/commonMain/resources/MR/images目录下,文件名与house_01完全匹配(注意大小写敏感)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 02:32:44