Как добавить ароматы в модуль с Android Studio?
У меня есть набор проектов, которые используют тот же модуль, который содержит почти весь фактический код. Проект настраивается следующим образом:
project/
- app/
- build.gradle
- libraries/
- module/
- build.gradle
- build.gradle
- settings.gradle
Все настройки настроены правильно, и я могу создавать и запускать приложения отлично, но я могу только добавить ароматы в проект, что не является идеальным решением. settings.gradle содержит следующее:
include ':app', ':libraries:module'
В файле build.gradle каталога приложения я добавил следующий блок:
productFlavors {
alpha
production
}
Используя gradle 0.11, это синхронизирует и создает assembleAlphaDebug, assembleAlphaRelease, assembleProductionDebug, assembleProductionRelease. Когда я пытаюсь сделать это в модуле, я получаю сообщение об ошибке:
Ресурс не найден, который соответствует указанному имени (в 'теме' со значением '@style/MyCustomTheme')
в построенной app/src/main/AndroidManifest.xml
. По какой-то причине модуль не строится, поэтому пользовательская тема не работает. Что я делаю неправильно?
Ответы
Ответ 1
В библиотечном модуле build.gradle вам понадобится пара дополнительных строк, чтобы сообщить об этом экспортировать ароматизаторы и какой вариант сборки использовать по умолчанию, если он не указан при добавлении из другого модуля:
android {
defaultPublishConfig "productionRelease"
publishNonDefault true
productFlavors {
alpha {
}
production {
}
}
}
Этот бит publishNonDefault
необходим, только если кто-то захочет зависеть от чего-то другого, кроме варианта productionRelease
. Предположительно, это так, если вы в первую очередь настроили мульти-ароматы в своей библиотеке.
Теперь, если вы добавите зависимость из другого модуля через это в свой build.gradle:
dependencies {
compile project(':module')
}
он будет зависеть от варианта productionRelease
по умолчанию. Если вы хотите зависеть от нестандартного варианта:
dependencies {
compile project(path: ':module', configuration:'alphaDebug')
}