Android - модуль выделения, указанный c - PullRequest
0 голосов
/ 29 января 2020

У меня один Android проект, где у меня есть 4 основных модуля :

  • МОДУЛЬ A
  • МОДУЛЬ B
  • МОДУЛЬ C
  • МОДУЛЬ D

В том же проекте у меня есть 3 вида продуктов

  • Аромат продукта X
  • Аромат продукта Y
  • Аромат продукта Z

Итак, в проекте главная папка У меня MainActivity.class , который ВКЛЮЧАЕТ SpecificFeature тогда и только тогда, когда арендатор имеет значение PRODUCT FLAVOR Y и настроен правильно (логическое значение true или flase). Итак, если это правда, мы вызываем специфицированную c функцию, которая доступна только в MODULE B , она будет выглядеть так ModuleB.specificFunctionCall().

Не у всех арендаторов есть MODULE B и это можно сделать с помощью

productFlavorYImplementation project(path: ':ModuleB')

Но теперь вызов ModuleB.specificFunctionCall() приведет к неразрешенной ссылке, так как нет модуляB. Конечно, я мог бы создавать дубликаты файлов, такие как enabled_feature/disabled_feature папки, и иметь дублирующиеся классы, такие как ModuleBHelper.class, и оба имели бы функцию specificFunctionCall(), где одна - пустая функция (решение неразрешенной ссылки), а другая - нормальная реализация, но это оставляет меня с дублирующими файлами, где одна сторона всегда будет копировать / вставлять + пустая реализация. Есть ли способ сделать это более элегантно?

...