Android внешний грейд

В моем проекте у меня есть модуль приложения и модуль для внешней библиотеки. Я создал варианты в своем приложении Gradle, чтобы у каждого был свой идентификатор приложения.

В библиотеке есть приемники вещания с пользовательскими (жестко запрограммированными) действиями. Я хочу, чтобы эти действия были связаны со вкусом, поэтому я хочу добавить идентификатор приложения каждого вкуса в качестве префикса для действий.

Мне уже удалось решить эту проблему, создав фреймворк в библиотеке gradle и установив buildConfigField, а затем использовав его в коде.

Но сейчас я пытаюсь по-другому... то, что я пытаюсь сделать, это:

  1. иметь файл Config.gradle с внешним свойством с именем "PKG_NAME"
  2. в Gradle модуля моего приложения, чтобы сделать -> применить от: '../Config.gradle'
  3. в Gradle библиотечного модуля, чтобы сделать также -> применить от: ../Config.gradle'
  4. затем в моем приложении gradle в разделе flavors установить значение этой переменной с помощью идентификатора приложения flavor.

  5. в библиотеке gradle, по умолчанию Config объявить buildConfigField

  6. в коде библиотеки используйте эту переменную 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 = ""
}

0 ответов

Другие вопросы по тегам