gpt4 book ai didi

android - 未引用本地库的 ProductFlavor 仍然需要 matchingFallbacks。如何防止或抑制此错误?

转载 作者:行者123 更新时间:2023-11-30 00:01:44 30 4
gpt4 key购买 nike

在将具有非常复杂风格的项目更新到 gradle 3.+ 时,我遇到了很多问题。

问题:一些不依赖于本地库的风格。虽然,有些风格不依赖于库,但每个应用程序风格都迫使我添加一个匹配的 lib 风格的后备。即使我将本地 lib 依赖项声明在应用程序的单一风格中,它也不会改变任何东西。有什么方法可以针对特定的应用程序风格抑制此错误,还是我只需要为每种风格设置匹配的后备,而不管它对本地库的依赖性如何?

如果即使应用程序不依赖于库,我也必须在每种风格中放置 matchingFallback,为什么他们不允许我们在默认配置中声明 matchingFallbacks,并在我们的应用程序风格中覆盖它,例如缺少维度策略?

本地库build.gradle

注意:这个 gradle 对于一个维度有两种不同的风格。要求应用程序中的匹配后备引用共享相同维度的风格。

apply plugin: 'com.android.library'

android {
...
defaultConfig {
...
}
buildTypes {
release {...}
debug {...}
}
flavorDimensions flavor.default
productFlavors {
libFlavor1 {
}
libFlavor2 {
}
}
}

dependencies {
...
}

应用构建.gradle

apply plugin: 'com.android.application'

android {
...
defaultConfig {...}
buildTypes {
release {...}
debug {...}
}
flavorDimensions flavor.default
productFlavors {
// Flavor that requires library
appFlavor1 {
matchingFallbacks = ['libFlavor1', 'libFlavor2']
}
// Does not require library but still requires matchingFallbacks?
appFlavor2 {}
}
}

dependencies {
implementation project(':library')
}

失败的解决方案

我已尝试将本地库移至 flavor,但其他库仍需要匹配的回退。

apply plugin: 'com.android.application'

android {
...
defaultConfig {...}
buildTypes {
release {...}
debug {...}
}
flavorDimensions flavor.default
productFlavors {
// Flavor that requires library
// I have tried to move the local lib to the flavor
// But the other flavor requires a fallback
appFlavor1 {
matchingFallbacks = ['libFlavor1', 'libFlavor2']
dependencies {
implementation project(':library')
}
}
// Does not require library but still requires matchingFallbacks?
appFlavor2 {}
}
}

dependencies {
// implementation project(':library')
...
}

最佳答案

如果你想添加对特定 flavor 的依赖,你可以使用<flavor's name>Implementation关键词:

android {
...
productFlavors {
appFlavor1 {
//MatchingFallbacks is required because of its dependencies to the project 'library'
matchingFallbacks = ['libFlavor1', 'libFlavor2']
//Don't use dependencies node here, it will add dependencies to the other flavors
}
appFlavor2{/*no need to use matchingFallbacks here, there is no dependencies to project 'library'*/}
}
...
}

dependencies {
appFlavor1Implementation project(':library')
}

关于android - 未引用本地库的 ProductFlavor 仍然需要 matchingFallbacks。如何防止或抑制此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49800575/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com