У меня есть проект с несколькими вариантами. Все ресурсы определены в src / main, а некоторые переопределяются в / src / [flavour_name]. Это работало просто отлично.
Однако теперь мне нужно настроить варианты так, чтобы они принадлежали одной из двух (или более, в будущем) разных групп клиентов. Мне нужно, чтобы ресурсы были объединены таким образом (где -> означает «переопределяется»):
основной набор источников -> группа клиентов -> аромат
Я пытался использовать исходные наборы в build.gradle следующим образом:
sourceSets
{
NiceFlav.res.srcDirs = ['src/main/res', 'src/CLIENT_GROUP_1/res', 'src/NiceFlav/res']
}
надеясь, что ресурсы в CLIENT_GROUP_1 будут переопределять ресурсы в main, где они существуют, и, наконец, любые ресурсы, которые могут или не могут существовать в NiceFlav, будут переопределять что-либо в main или CLIENT_GROUP_1. Но, к сожалению, когда дело доходит до сборки, gradle просто выплевывает ошибки о любом ресурсе, который дублируется в CLIENT_GROUP_1 и / или NiceFlav.
Как настроить gradle так, чтобы ресурсы были объединены требуемым образом?
(изменить)
Использование размеров, по крайней мере, в предлагаемой конфигурации по умолчанию, не работает; если я создаю несколько измерений, я получаю структуры каталогов, например:
src/Main
src/NiceFlavor
src/NiceFlavorCLIENT_GROUP_1
src/NiceFlavorCLIENT_GROUP_2
src/OtherFlavor
src/OtherFlavorCLIENT_GROUP_1
src/OtherFlavorCLIENT_GROUP_2
...
и мне нужно было бы поместить все ресурсы для CLIENT_GROUP_1 и CLIENT_GROUP_2 в каждую папку вариантов
Что мне действительно нужно, так это структура каталогов, которая будет выглядеть следующим образом:
src/Main
src/CLIENT_GROUP_1
src/CILENT_GROUP_2
src/NiceFlavor
src/OtherFlavor
...
Сборка должна затем взять все ресурсы из Main, переопределить любые ресурсы, найденные в CLIENT_GROUP_1 или CLIENT_GROUP_2 (в зависимости от того, к какой группе принадлежит аромат), а затем, наконец, переопределить все ресурсы, найденные в отдельном каталоге флейтов.
примечание: вариант будет принадлежать только одному CLIENT_GROUP, поэтому нет необходимости в нескольких вариантах сборки для каждого варианта, кроме стандартной отладки / выпуска.