使用需Gradle9.2.0+的新版AGP构建Android时触发Settings_gradle错误
排查Gradle 9.2+初始化构造函数错误的实用步骤
针对你遇到的Gradle升级至9.2+后出现的Settings_gradle.<init>构造函数错误,可按以下步骤逐步排查:
1. 彻底清理Gradle缓存与守护进程
旧缓存或残留的守护进程常引发兼容性问题:
- 停止所有Gradle守护进程:
gradlew --stop - 删除本地全局Gradle缓存:
前往C:\Users\<你的用户名>\.gradle,删除caches和daemon文件夹 - 删除项目根目录下的
.gradle文件夹
2. 对齐Kotlin DSL与Gradle内置版本
Gradle 9.2+对Kotlin DSL版本匹配要求严格(你的Gradle 9.3.1内置Kotlin 2.2.21):
- 检查
settings.gradle.kts/build.gradle.kts中显式指定的Kotlin插件版本,确保与内置版本一致 - 移除
kotlin-dsl插件的显式版本声明,让Gradle自动适配内置版本
3. 排查Settings脚本的API兼容性
Gradle 9.x对Settings API做了调整,尤其是Kotlin DSL的初始化逻辑:
- 将
settings.gradle.kts简化为最基础版本(仅保留仓库和必要插件),逐步恢复原有配置,定位触发错误的代码块 - 检查是否使用了直接依赖
KotlinScriptHost或PluginDependenciesSpec的自定义逻辑,这类API可能已被修改或移除
4. 验证第三方插件兼容性
第三方插件未适配Gradle 9.2+是常见诱因:
- 列出项目中所有插件(Settings级和Project级),逐个确认插件最新版本是否支持Gradle 9.2+
- 暂时禁用非核心插件,重新构建,若恢复正常则逐个启用定位问题插件
5. 确保Java环境一致性
虽然使用Java 21,但需避免环境不一致:
- 确认系统
JAVA_HOME指向Eclipse Adoptium 21.0.10+7-LTS - 移除
gradle.properties或脚本中可能指定的其他JDK路径 - 尝试用
--no-daemon参数构建,规避守护进程的JDK差异:gradlew build --no-daemon
6. 查看详细构建日志
即使--scan无法使用,可通过日志级别获取更多线索:
- 执行带日志参数的构建命令:
gradlew build -i # 信息级别日志 # 或 gradlew build -d # 调试级别日志 - 重点关注错误发生前的插件加载、脚本执行环节,寻找异常线索
7. 核对Gradle版本变更日志
查看Gradle 9.2/9.3官方变更日志,重点关注Settings API、Kotlin DSL相关的变更,确认是否有项目依赖的API被移除或修改
内容的提问来源于stack exchange,提问作者arberg
相关产品推荐
相关产品推荐

