升级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对应KSP1.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
相关产品推荐
相关产品推荐

