Предварительные требования
Я создал приложение, в котором используется следующая древовидная структура (build.gradle уровня приложения изменяется в соответствии с документацией - вы можете найти этиизменения в конце этого вопроса):
- app
- src
- main
- my_theme
- связок
- a_bundle
- папка для рисования, папка значений, папка макета и т. Д.
- global
- папка для рисования, значенияпапка, макет папки и т. д.
Существует несколько комплектов,Все каталоги значений (по одному на пакет и один в глобальной папке) содержат файл strings.XML
. Мое приложение компилируется и выполняется правильно .
Однако в документации Android указано, что:
Примечание. Если два или более каталога ресурсов содержат один и тот же файл ресурсаво время слияния ресурсов возникает ошибка.
(https://developer.android.com/studio/write/add-resources#change_your_resource_directory)
Вопрос
Итак, поскольку я использую тот же файл strings.xml
, почему нет ошибкипоказано? (разумеется, содержимое этих strings.xml
файлов изменяется в зависимости от каталога, в котором они находятся - либо каталога их комплекта, либо глобального каталога)
на уровне приложения build.gradle
Чтобы заставить его работать (например, чтобы Android Resolver мог распознавать символы), я добавил следующие строки:
android {
sourceSets {
main {
res.srcDirs = [
'src/main/bestheme/global',
'src/main/bestheme/bundles/a_bundle'
]
}
}
}