能否将buildSrc中的Kotlin构建文件导入到settings.gradle中使用?
问题解决方法
你遇到的报错由两个问题共同导致,对应的解决逻辑如下:
- 直观拼写错误:你的settings.gradle中写的是
Settins.useLocal,少了一个字母g,正确拼写为Settings.useLocal,这是直接触发类找不到报错的原因之一。 - 构建时机不匹配:buildSrc的编译时机晚于settings.gradle的执行时机,settings.gradle属于Gradle初始化阶段最先执行的配置文件,此时buildSrc还未完成编译,因此即使拼写修正也无法直接在settings.gradle中访问buildSrc内的类。
可选实现方案
方案1:使用gradle.properties存储配置(最简便)
直接在项目根目录的gradle.properties文件中添加配置:
useLocal=true
之后在settings.gradle中直接读取即可:
gradle.ext { useLocal = project.hasProperty('useLocal') ? project.property('useLocal').toBoolean() : false } include ':app'
方案2:使用includedBuild替代buildSrc管理配置(适合需要Kotlin代码统一管理配置的场景)
- 新建名为
build-logic的独立模块,将原buildSrc中的Settings.kt移动到该模块的src/main/kotlin目录下,给该模块添加build.gradle.kts配置:
plugins { `kotlin-dsl` }
- 在项目根目录的settings.gradle最开头引入该构建:
pluginManagement { includeBuild("build-logic") } import com.example.android.Settings // 注意此处import路径要和Settings.kt的实际包名匹配 gradle.ext { useLocal = Settings.useLocal } include ':app'
内容的提问来源于stack exchange,提问作者Shivansh
相关产品推荐
相关产品推荐

