迁移到Gradle Kotlin DSL后,buildSrc Kotlin常量的未解析引用

时间:2018-10-28 10:38:16

标签: android build.gradle gradle-kotlin-dsl

我正在尝试将我的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,它就无法再解决它们。有什么解释吗?

3 个答案:

答案 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目录视为包含的内部版本,而不作为模块。

settings.gradle.kts(。)

include(":app")

然后,文件>使缓存无效/重新启动...

GL