我使用DexGuard并为4种构建类型(发布和调试)提供了4种产品风格(prod,qa,dev,mock),我没有为调试版本启用DexGuard,因此我获得了4种变体({{1} } ... dexguardProdRelease
)但是,我不想为开发和模拟口味启用DexGuard。
我了解了Gradle提供的dexguardMockRelease
但是,在这种情况下,我不知道如何使用与插件DexGuard相关的命令。
答案 0 :(得分:1)
我能够像这样解决:
//added to filter dexguard for these flavors
variantFilter { variant ->
def names = variant.flavors*.name
if(names.contains("mock") && variant.buildType.name == "release") {
variant.ignore = true
} else if (names.contains("dev") && variant.buildType.name == "release") {
variant.ignore = true
}
}
现在,Gradle不会显示dexguardMockRelease
或dexguardDevRelease
等任务。
我通过查看过滤掉DexGuard
而错误地解决了这个问题,而我应该考虑删除某些风格。以下是我build.gradle
的相关部分:
apply plugin: 'dexguard'
...
android {
buildTypes {
release {
proguardFile getDefaultDexGuardFile('dexguard-release-aggressive.pro')
proguardFile 'dexguard-project.pro'
}
debug {
//dontshrink, dontoptimize and dontobfuscate are turned off
}
}
productFlavors {
prod {
...
}
qa {
...
}
dev {
...
}
mock {
...
}
}
//added to filter dexguard for these flavors
variantFilter { variant ->
def names = variant.flavors*.name
if(names.contains("mock") && variant.buildType.name == "release") {
variant.ignore = true
} else if (names.contains("dev") && variant.buildType.name ==
"release") {
variant.ignore = true
}
}
}