Android внешний грейд
В моем проекте у меня есть модуль приложения и модуль для внешней библиотеки. Я создал варианты в своем приложении Gradle, чтобы у каждого был свой идентификатор приложения.
В библиотеке есть приемники вещания с пользовательскими (жестко запрограммированными) действиями. Я хочу, чтобы эти действия были связаны со вкусом, поэтому я хочу добавить идентификатор приложения каждого вкуса в качестве префикса для действий.
Мне уже удалось решить эту проблему, создав фреймворк в библиотеке gradle и установив buildConfigField, а затем использовав его в коде.
Но сейчас я пытаюсь по-другому... то, что я пытаюсь сделать, это:
- иметь файл Config.gradle с внешним свойством с именем "PKG_NAME"
- в Gradle модуля моего приложения, чтобы сделать -> применить от: '../Config.gradle'
- в Gradle библиотечного модуля, чтобы сделать также -> применить от: ../Config.gradle'
затем в моем приложении gradle в разделе flavors установить значение этой переменной с помощью идентификатора приложения flavor.
в библиотеке gradle, по умолчанию Config объявить 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
}
}
библиотечный модуль gradle
...
apply from: '../Config.gradle'
...
...
defaultConfig{
...
...
buildConfigField("String", "PKG_NAME", '"' + PKG_NAME + '"')
}
Файл Config.gradle
ext{
PKG_NAME = ""
}