Android внешний грейд - PullRequest
       44

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

0 голосов
/ 06 января 2019

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

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

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

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

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

  5. в библиотеке gradle, для defaultConfig объявить 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
    }
}

библиотека библиотечного модуля

...
apply from: '../Config.gradle'
...
...
defaultConfig{
    ...
    ...
    buildConfigField("String", "PKG_NAME", '"' + PKG_NAME + '"')
}

Config.gradle file

ext{
   PKG_NAME = ""
}
...