我正在尝试将我的android项目迁移到使用gradle kotlin dsl,将所有build.gradle文件替换为build.gradle.kts文件,并在那里使用kotlin。以前,我曾经有过一个kotlin文件,其中包含带有库和版本常量的对象元素(在buildSrc-> src-> main-> kotlin中),例如:
object Versions {
const val anyLibVersion = "1.0.0"
}
object Lib {
const val anyLib = "x:y:${Versions.anyLibVersion}"
}
在build.gradle文件中,我可以毫无问题地访问这些常量,但是一旦将它们切换到build.gradle.kts,它就无法再解决它们。有什么解释吗?
答案 0 :(得分:1)
您通常会在buildSrc/build.gradle.kts
中关注
import org.gradle.kotlin.dsl.`kotlin-dsl`
repositories {
jcenter()
}
plugins {
`kotlin-dsl`
}
,然后在buildSrc/src/main/java/Dependencies.kt
中输入您的版本/相关性
答案 1 :(得分:1)
您可以通过完全删除android {}块,进行Gradle同步,然后重新添加代码块来解决此问题。
答案 2 :(得分:0)
将buildSrc目录视为包含的内部版本,而不作为模块。
include(":app")
然后,文件>使缓存无效/重新启动...
GL