Android风格的通用模块

时间:2019-02-26 10:39:44

标签: android android-productflavors

我具有以下项目结构,其中:app是应用程序模块,:feature和:common是库。我需要在:common中配置一些变量,例如server_url,并希望通过beta, staging, prod之类的productFlavors对其进行配置。

        :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

我使用buildTypesmatchingFallbacks来完成类似的工作,但似乎有点怪异,因为我打算使用多种风味尺寸。仅通过buildTypes实现它会迫使我手动创建所有组合。

这是问题:
 1.是否可以通过productFlavors加上诸如“使用:app模块选择的风味”之类的魔术词来解决?
 2.是否可能仅在:common模块中具有风味?在这种情况下,如何构建应用程序?
 3.整个项目结构中可能有一个错误,应该以其他方式解决该问题,例如“仅对:app模块具有味道,而对库模块则没有味道”。是这样吗

0 个答案:

没有答案