Android 迁移到gradle kotlin dsl后buildSrc kotlin常量的未解析引用

Android 迁移到gradle kotlin dsl后buildSrc kotlin常量的未解析引用,android,build.gradle,gradle-kotlin-dsl,Android,Build.gradle,Gradle Kotlin Dsl,我正在尝试将我的android项目迁移到使用gradle kotlin dsl,用build.gradle.kts文件替换所有build.gradle文件,并在那里使用kotlin。以前,我曾经有一个kotlin文件,其中包含具有库和版本常量的对象元素(在buildSrc->src->main->kotlin中),如: 在build.gradle文件中,我可以毫无问题地访问这些常量,但一旦我将它们切换到build.gradle.kts,它就无法再解析它们了。对此有什么解释吗?您通常会在build

我正在尝试将我的android项目迁移到使用gradle kotlin dsl,用build.gradle.kts文件替换所有build.gradle文件,并在那里使用kotlin。以前,我曾经有一个kotlin文件,其中包含具有库和版本常量的对象元素(在buildSrc->src->main->kotlin中),如:


在build.gradle文件中,我可以毫无问题地访问这些常量,但一旦我将它们切换到build.gradle.kts,它就无法再解析它们了。对此有什么解释吗?

您通常会在
buildSrc/build.gradle.kts

import org.gradle.kotlin.dsl.`kotlin-dsl`

repositories {
    jcenter()
}

plugins {
    `kotlin-dsl`
}

然后在
buildSrc/src/main/java/dependencies.kt

中将buildSrc目录作为
settings.gradle.kts(.)中的模块处理


预编译脚本插件。 然后对于Kotlin DSL中的
apply from
,您应该使用
plugins{}

build.gradle.kts(X:buildSrc) buildSrc/src/main/kotlin/core-library.gradle.kts 注意:
apply(from=“path.gradle.kts”
对我不起作用

plugins {
    id("com.android.library")
    id("kotlin-android")
    id("kotlin-parcelize")
}
feature.gradle.kts 德国劳埃德船级社


您可以通过完全删除android{}来修复它块,执行Gradle同步,然后再添加代码块。

我的buildSrc/build.Gradle.kts看起来就是这样。所以你是说错误在于我使用的是kotlin源文件夹而不是java源文件夹?我以前确实有过,但我认为使用kotlin源文件夹更合适。这两个都可以使用吗?当然可以inly与
java
…尚未尝试使用
kotlin
…稍后将在此处进行测试,看看是否有效(或者例如,您是否需要在gradle中显式设置
SourceSet
)尝试在此处使用
kotlin
而不是
java
作为文件夹名称,看起来效果很好。嗯,那么我的项目中肯定有任何问题。感谢您的努力!在重新安装android studio后,现在可以工作了吗?这只是android studio的问题,还是命令行生成也失败了?重新插入后,现在可以工作了吗安卓系统的一切对我不起作用:(
plugins {
    `java-gradle-plugin`
    `kotlin-dsl`
    `kotlin-dsl-precompiled-script-plugins`
}

repositories {
    mavenCentral()
}
plugins {
    id("com.android.library")
    id("kotlin-android")
    id("kotlin-parcelize")
}
plugins {
    id("core-library")
}