В моем проекте у меня есть модуль приложения и модуль для внешней библиотеки.
Я создал варианты в своем приложении Gradle, чтобы у каждого был свой идентификатор приложения.
В библиотеке есть приемники вещания с пользовательскими (жестко заданными) действиями.
Я хочу, чтобы эти действия были связаны со вкусом, поэтому я хочу добавить идентификатор приложения каждого вкуса в качестве префикса для действий.
Мне уже удалось решить эту проблему, создав фреймворк в библиотеке gradle и установив buildConfigField, а затем используя его в коде.
Но сейчас я пытаюсь по-другому ... я пытаюсь сделать следующее:
- имеет файл Config.gradle с внешним свойством с именем "PKG_NAME"
- в приложении моего модуля приложения -> применить от: '../Config.gradle'
- в модуле библиотеки тоже сделать -> применить от: ../Config.gradle'
затем в моем приложении gradle, в разделе flavors, чтобы установить значение этой переменной с идентификатором приложения flavor.
в библиотеке gradle, для defaultConfig объявить buildConfigField
- в коде библиотеки используйте эту переменную buildConfig.
но проблема в том, что переменная не установлена, и она все еще пуста.
Модуль приложения Gradle
...
apply from: '../ConfigFile.gradle'
...
...
productFlavors{
flavorA{
applicationId = "com.example.flavors.flavorA"
PKG_NAME = applicationId
}
flavorB{
applicationId = "com.example.flavors.flavorB"
PKG_NAME = applicationId
}
}
библиотека библиотечного модуля
...
apply from: '../Config.gradle'
...
...
defaultConfig{
...
...
buildConfigField("String", "PKG_NAME", '"' + PKG_NAME + '"')
}
Config.gradle file
ext{
PKG_NAME = ""
}