Создание двух вариантов сборки с использованием одного и того же файла res в Gradle Kotlin DSL?

#android #gradle-kotlin-dsl #android-productflavors #kotlin-dsl

#Android #gradle-котлин-dsl #android-productflavors #kotlin-dsl

Вопрос:

У меня есть 3 названных варианта сборки FlavorA, FlavorB, FlavorC

FlavorA использует общие ресурсы, поэтому в его исходном наборе нет ничего лишнего, FlavorB и FlavorC используют одни и те же ресурсы, но они отличаются от обычных, поэтому у них обоих одинаковые strings.xml, styles.xml файлы. Единственное различие между B и C — это applicationId, поэтому я просто хочу, чтобы FlavorC использовал res-файл FlavorB вместо копирования и вставки strings.xml , styles.xml файлы каждый раз, когда они меняются. Возможно ли это?

 productFlavors {
    flavorDimensions("version")
    create("FlavorA") {
        dimension("version")
        applicationId = com.example.flavora
    }
    create("FlavorB") {
        dimension("version")
        versionName = "1.0.0"
        applicationId = "com.example.flavorb"
    }
    create("FlavorC") {
        dimension("version")
        versionName = "1.0.0-test01"
        applicationId = "com.example.flavorc"
    }
}
 

структура пакета выглядит следующим образом:

 -main
-flavorB
   -res
-flavorC
   -res (I want to get rid of this and point to FlavorB's res file to avoid dealing with identical stuff)
 

Ответ №1:

 sourceSets {
        getByName("FlavorB").res.srcDirs(
                "src/flavorb/res"
        )
    }