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

升级Kotlin、Compose Compiler后Gradle报moduleName无值错误求助

解决Kotlin 1.9.0升级后moduleName属性未初始化的错误

错误原因

这个错误核心是依赖/插件版本不兼容或插件应用顺序错误,导致Kotlin编译任务尝试访问的moduleName属性未被Android Gradle插件正确初始化:

  • Kotlin 1.9.0对KSP、Room、Hilt等工具的版本有严格兼容性要求,旧版本工具无法适配新Kotlin版本的属性初始化逻辑
  • 若KSP插件在Android插件之前被应用,会导致其无法获取Android插件生成的moduleName值

解决步骤

1. 同步所有依赖/插件的兼容版本

结合你的Gradle插件8.1.1、Kotlin 1.9.0,确保以下依赖版本匹配:

  • KSP:使用与Kotlin版本完全匹配的版本,格式为${kotlinVersion}-${kspRevision},例如Kotlin 1.9.0对应KSP 1.9.0-1.0.13
  • Room:升级至2.6.0及以上版本(Room 2.6.0正式支持Kotlin 1.9)
  • Hilt:升级至2.48及以上版本(适配Gradle 8.x和Kotlin 1.9)

若使用版本目录(libs.versions.toml),更新对应版本条目:

[versions]
kotlin = "1.9.0"
ksp = "1.9.0-1.0.13"
room = "2.6.1"
hilt = "2.48"

[plugins]
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }

2. 确认插件应用顺序

在data-local模块的build.gradle中,确保插件应用顺序遵循Android插件 → Kotlin插件 → 注解处理器插件(Kapt/Hilt) → KSP的顺序(你的当前顺序已符合要求,若之前调整过需恢复):

plugins {
    alias libs.plugins.android.library
    alias libs.plugins.kotlin.android
    alias libs.plugins.kotlin.kapt
    alias libs.plugins.hilt.android
    alias libs.plugins.ksp
}

3. 清理构建缓存并重建

执行以下命令彻底清理并重新配置项目:

./gradlew clean
./gradlew :data-local:configure
./gradlew assembleDebug

额外排查点

  • 检查根项目settings.gradle或gradle.properties中是否有覆盖moduleName的配置,避免手动清空该属性
  • 确认ProjectConfig类中的compileSdk、jvmTarget等属性已正确初始化,避免配置值缺失导致Android插件无法生成moduleName

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 01:45:04