- module lib的build.gradle
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
...
//只有在这里声明维度,才能识别Variant,同时声明两个,则同时编译两个
flavorDimensions 'channel'
}
publishNonDefault true
productFlavors {
vivo {
dimension 'channel'
}
huawei {
dimension 'channel'
}
}
}
- app的bulid.gradle
apply plugin: 'com.android.application'
android {
useLibrary 'org.apache.http.legacy'
compileSdkVersion 28
defaultConfig {
...
missingDimensionStrategy 'channel','huawei'
}
}
dependencies {
...
implementation project(':module-lib')
}
3.如此按以上2步配置时,

选中huaweiDebug是编译成功的,但当选中vivoDebug时则出报错
WARNING: Module 'module-lib' has variant 'vivoDebug' selected, but the module ''app'' depends on variant 'huaweiDebug'
4.解决办法:在app的build.gradle中将missingDimensionStrategy 'channel','huawei'更改为missingDimensionStrategy 'channel','vivo'
因此每次切换build variant时都手动更改missingDimensionStrategy即可
5.这方法虽然有点点麻烦,但代码简洁明了,若有更好的办法,还请告知
网友评论