android - Kotlin DSL 添加新的 sourceSet

标签 android gradle-kotlin-dsl

在 Gradle 6.1.1 上,如何为 android 项目添加 sourceSets?

其他问题的答案不再有效,getByName("name") 返回错误,SourceSet with name 'main' not found。

官方文档说要用

sourceSets {
    main {
        java {
            srcDir("thirdParty/src/main/java")
        }
    }
}

但是,有20多个main必须导入,我不确定哪个是正确的。

最佳答案

我正在使用 gradle 6.5.1,但是文档建议,这也应该适合你,试试:

sourceSets {
    named("main") {
        java.srcDir("../buildSrc/src/main/java")
    }
}

它也适用于构建类型(调试/发布)、风格等。

这样做的原因是 groovy 可以以某种方式解释自己并知道 main等等,但是在 gradle kts 上,你使用 named 调用它对于已经存在的,或 getByName , create等等。

类似的情况是implementapi在 groovy 中你可以只使用 implementationDebug仅为调试版本附加它,但在 kotlin dsl 中,您必须将其作为字符串调用 "implementationDebug" , 因为没有这个功能

----- 附言-----

如果named , getByName不适合你,然后尝试使用 findByName 进行试验和 create

关于android - Kotlin DSL 添加新的 sourceSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63898030/

相关文章:

java - 使用屏幕驱动程序注入(inject)触摸事件

java - 用于具有子项目的项目的 Dropwizard + Gradle fatJar 引入 gradle-api-5.4.1.jar deps

Android Gradle Plugin 7 LibraryBuildType 不再具有 isDebuggable 属性

android - 如何在Android Gradle项目的项目配置阶段之前定义ANDROID_HOME?

android - Fragment 的 GetTag 返回空对象引用

android - 条形码读取 Delphi xe7, Intent 未触发后的事件

android - 尝试访问其他文件时切换到 Kotlin DSL Unresolved reference

gradle - 使用 maven-publish 插件签署 POM 文件

android - 无法从 View 转换为 EditTextPreference

java - Android - 按钮计时器(处理程序 - RemoveCallback 不会停止 PostDelayed)