Два аромата с разными ресурсами, наследующими макет из одного базового аромата

У меня есть приложение для Android, разделенное на четыре разных стиля сборки. Каждый из этих вкусов имеет часть уникальных java и xml файлов, а также часть общих файлов в main . Для ясности назовем эти Cucumber , Tomato , Onion и Pepper . Эти ароматы имеют уникальные макеты, чертежи, строки, цвета, java-файлы и т. Д.

Мое требование теперь в том, что мне нужно разделить аромат Pepper на два суб-аромата; Red-Pepper и Green-Pepper . Макеты для этих двух ароматов должны быть идентичными – единственное отличие состоит в том, что эти два вкуса должны использовать разные ресурсы для drawable и string . Я не хочу иметь дублирующие файлы макетов в красном и зеленом вкусах по понятным причинам.

Как это можно достичь в gradle ?

Вы можете определить несколько папок ресурсов.
Таким образом, вы можете использовать общие папки для 2 ароматов (в вашем redPepper и greenPepper).
Например, что-то вроде этого:

 android { ... sourceSets { main { //.... res.srcDirs = ['/src/main/res'] } redPepper { res.srcDirs = ['/src/flavorRed/res', '/src/commonPepper/res'] } greenPepper { res.srcDirs = ['/src/flavorGreen/res', '/src/commonPepper/res'] } //.....other flavors } }