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

Kotlin多平台桌面应用使用stringResource出现未解析引用问题

解决Kotlin Multiplatform Compose字符串资源未解析问题

先核对资源文件的基础配置

  • 确认strings.xml路径完全正确:必须是composeApp/src/commonMain/composeResources/values/strings.xml,注意composeResources是小写开头,别写错大小写。
  • 检查xml内容格式,确保no_ports的定义没写错:
    <resources>
        <string name="no_ports">未找到可用端口</string>
    </resources>
    
    重点看name属性的拼写,必须和代码里的no_ports完全一致,大小写、下划线都不能错。

检查build.gradle.kts的配置

打开composeApp模块下的build.gradle.kts,确认以下几点:

  • plugins块里要有org.jetbrains.compose插件,版本要和你的Kotlin版本匹配。
  • sourceSets的commonMain部分要正确指定资源目录:
    sourceSets {
        val commonMain by getting {
            resources.srcDir("src/commonMain/composeResources")
            dependencies {
                // 保留你的其他依赖,确保包含compose核心库
                implementation(compose.runtime)
                implementation(compose.ui)
            }
        }
    }
    
  • 确认添加了UI资源依赖,版本对应你的Compose版本:
    dependencies {
        implementation("org.jetbrains.compose.ui:ui-resources:1.5.1")
    }
    

清理缓存并同步项目

  • 先在终端执行Gradle清理命令:./gradlew clean build(Windows用gradlew.bat clean build),清除旧的编译产物。
  • 点击IDE右上角的「Sync Project with Gradle Files」按钮,同步配置。
  • 如果还是不行,试试IntelliJ的「File -> Invalidate Caches... -> Invalidate and Restart」,彻底清除IDE缓存。

最后检查代码引用

  • 确保导入了自动生成的Res类,路径是你项目的包名,比如import com.your.app.Res。
  • 调用时确认是stringResource(Res.string.no_ports),别写成Res.strings.no_ports这类拼写错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 23:58:16