我有一个具有多种口味的应用程序:flava1
,flava2
,flava3
.....(随着时间的流逝,口味的数量不断增加)。
该应用使用版本some-lib
的依赖项X.X.X
。但是其中一个(例如flava2
)要求该依赖项的版本为X.X.Y
,而其他风味继续使用X.X.X
。
我尝试过这样使用基于风味的依赖项行:
dependencies {
implementation 'com.example:some-lib:X.X.X'
flava2Implementation 'com.example:some-lib:X.X.Y'
}
,但最终将始终使用X.X.X
。我什至尝试更改这两行的顺序(先放置flava2Implementation
),但这也不起作用。
是否有其他方法无需为flava1Implmentation
以外的所有其他类型显式编写flava3Implmentation
,flava4Implmentation
,flava2
等来完成此操作?因为每次添加新的风味时,我们都可能会忘记在依赖项中添加一行
答案 0 :(得分:0)
我尝试用dimensions
解决此问题:
flavorDimensions "flav1", "other"
productFlavors {
flav1 {
dimension "flav1"
applicationIdSuffix ".flav1"
}
flav2 {
dimension "other"
applicationIdSuffix ".flav2"
}
flav3 {
dimension "other"
applicationIdSuffix ".flav3"
}
forOther {
dimension "other"
}
}
然后,我们只能添加forOther
implementation 'com.example:some-lib:X.X.X'
flav1Implementation 'com.example:some-lib:X.X.Y'
forOtherImplementation 'com.example:some-lib:Z.Z.Z'
因为forOther/
<included in flav2/flav3>