我需要为测试库制作不同的版本。为什么呢?因为我希望项目始终保持完全安全,所以我想启用缩小功能(即使是调试构建类型)。
在编写测试时,我使用了来自项目的不同类,因此我决定使用不同的口味更改proguard文件。大致如下:
android {
...
buildTypes {
release {
minifyEnabled true
testProguardFile 'test-proguard-rules.pro'
}
debug {
minifyEnabled true
testProguardFile 'test-proguard-rules.pro'
}
}
...
productFlavors{
forTest{
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules1.pro', 'debug-rules.pro'
}
forRelease{
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'debug-rules.pro'
}
}
}
同时,proguard-rules*文件
proguard-rules:
-dontwarn blablabla.**
-dontwarn blabla.**
-keep class bla.** { *; }
Proguard规则1:
-dontshrink
-dontobfuscate
-dontwarn
但是这对我并没有帮助。我想运行没有混淆的测试。Flavors没有像minifyEnabled这样的参数,因此我尝试寻找任何解决方案。那么,有关解决问题的建议吗?也许有人遇到过同样的问题,并找到了另一种解决方案(不使用flavors)?
flavorA_rules.pro
会替换flavorA
上的proguard-rules.pro
吗? - TooCoolgood-trainer-android/<module>/build/intermediates/aapt_proguard_file/<flavor name>
中验证生成的 Proguard 文件。 - FabioR