0

我有一个有两种口味的图书馆项目

configurations {
    // Initializes placeholder configurations that the Android plugin can use when targeting
    // the corresponding variant of the app.
    internalDebug {}
    internalRelease {}
    externalDebug {}
    externalRelease {}
}

flavorDimensions("outerInner")
productFlavors {
    internal{dimension "outerInner"}
    external{dimension "outerInner"}
}

build.gradle 中没有定义自定义源集

对于其中一种风味,我在里面有自定义布局:

在此处输入图像描述

所有其他来源应来自main.

当我将此库包含到应用程序时:

implementation project(path: ':sdk', configuration: 'internalDebug')

该库根本没有类,sdk所有导入标记为红色。

问题是为什么应用程序中的库文件夹中没有来源main

4

1 回答 1

0

missingDimensionStrategy最后我得到了应用程序中定义的解决方案build.gradle

// Specifies a sorted list of flavors that the plugin should try to use from
// a given dimension. The following tells the plugin that, when encountering
// a dependency that includes a "minApi" dimension, it should select the
// "minApi18" flavor. You can include additional flavor names to provide a
// sorted list of fallbacks for the dimension.
missingDimensionStrategy 'outerInner', 'internal'

这意味着如果在构建过程中 gradle 将找到一个具有flavorDimension outerInner它应该使用的依赖项internal

应用此之后,我可以简单地包括

implementation project(path: ':sdk')

对于每个应用程序的 buildType,它将使用适当的debugreleseSDK 构建并回退到internal实现。

External实施通过设置交付给 Maven artifact bundleExternalDebugAar

于 2019-11-14T14:40:21.023 回答