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

Kotlin Compose Desktop加载图片提示image.png资源找不到问题求助

Kotlin Compose for Desktop 图片资源加载失败解决方案

核心问题根因

useResource 接口默认读取的是项目src/main/resources目录下的资源,直接将图片放在src根目录无法被资源加载器识别,和框架实验性特性无关。

具体修复步骤

  • 调整资源存放位置:在项目src/main路径下新建resources文件夹(如果不存在的话),将image.png移动到该文件夹下,确保resources文件夹和同级的kotlin、java目录层级一致。
  • 校验资源路径配置:
    • 确认文件名拼写、大小写与代码中引用的字符串完全一致,资源加载对大小写敏感,比如文件名为Image.png时写image.png会触发找不到的错误。
    • 如果图片放在resources的子目录中,需要补全路径,比如存放在resources/img下时,代码应写为useResource("img/image.png")。
  • 检查构建配置:如果调整路径后仍报错,打开项目根目录的build.gradle.kts,确认sourceSets配置中包含了resources目录,默认模板的配置如下,缺失的话补全即可:
sourceSets.main {
    resources.srcDirs("src/main/resources")
}

优化代码示例

修复路径后原有代码可正常运行,也可以补充异常捕获逻辑避免资源不存在时崩溃:

val imageModifier = Modifier
    .height(240.dp)
    .fillMaxWidth()
    .clip(RoundedCornerShape(12.dp))

// 可选:添加异常捕获做降级处理
val imageBitmap = try {
    useResource("image.png") { loadImageBitmap(it) }
} catch (e: Exception) {
    // 资源不存在时可返回默认占位图Bitmap,这里简化返回null
    null
}

imageBitmap?.let {
    Image(
        bitmap = it,
        contentDescription = "image",
        modifier = imageModifier,
        contentScale = ContentScale.Fit
    )
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:36:03