Android приправленный общий модуль - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть следующая структура проекта, где: app - это модуль приложения,: feature и: common - библиотеки.Мне нужно настроить некоторые переменные, такие как server_url, в :common и настроить их через productFlavors, например, beta, staging, prod.

        :app
       /  |
      V   |
:feature  |
      \   |
       V  V
       :common

Я думаю, это означает, что мне нужны все те же варианты в моем модуле :app, так какон решает, какой вариант зависимости использовать.
Но информация о вкусе, по-видимому, исчезает в модуле :feature, поскольку у него нет вкусов, что приводит к проблемам с настройкой, таким как:

Caused by: org.gradle.internal.component.AmbiguousConfigurationSelectionException: Cannot choose between the following variants of project :common:
  - betaDebugRuntimeElements
  - prodDebugRuntimeElements
  - stagingDebugRuntimeElements

Мне удалось выполнитьчто-то похожее, используя buildTypes с matchingFallbacks, но это кажется немного странным, потому что я планирую использовать несколько измерений вкуса.Реализация только через buildTypes заставит меня создавать все комбинации руками.

Итак, вот вопросы:
1. Можно ли решить это с помощью productFlavors с помощью некоторых волшебных слов, таких как «использовать аромат, выбранный: app»module "?
2. Возможно ли иметь ароматы только в модуле :common?Как создать приложение в этом случае?
3. Может быть, во всей структуре проекта есть ошибка, и проблема должна быть решена другим способом, например, "flavors only for: app module, no flavors for library modules"».Это тот случай?

...