多风味库的主要来源没有 类
No classes from main sources from multi flavor library
我有一个有 2 种风格的图书馆项目
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
中未定义自定义 sourceSet
对于其中一种口味,我在里面有自定义布局:
所有其他来源应来自 main
。
当我将这个 libaryr 添加到应用程序时:
implementation project(path: ':sdk', configuration: 'internalDebug')
根本没有 sdk
库的 类,所有导入都标记为红色。
问题是为什么应用程序中没有来自main
的库文件夹的来源?
最后我得到了在应用程序 build.gradle
中定义 missingDimensionStrategy
的解决方案。
// 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')
对于每个应用程序的构建类型,它将使用适当的 debug
或 relese
SDK 构建并回退到 internal
实施。
External
实现通过 artifact bundleExternalDebugAar
设置交付给 Maven。
我有一个有 2 种风格的图书馆项目
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
中未定义自定义 sourceSet对于其中一种口味,我在里面有自定义布局:
所有其他来源应来自 main
。
当我将这个 libaryr 添加到应用程序时:
implementation project(path: ':sdk', configuration: 'internalDebug')
根本没有 sdk
库的 类,所有导入都标记为红色。
问题是为什么应用程序中没有来自main
的库文件夹的来源?
最后我得到了在应用程序 build.gradle
中定义 missingDimensionStrategy
的解决方案。
// 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')
对于每个应用程序的构建类型,它将使用适当的 debug
或 relese
SDK 构建并回退到 internal
实施。
External
实现通过 artifact bundleExternalDebugAar
设置交付给 Maven。