我正在尝试将proguard配置为与我的espresso UI测试版本一起使用。问题是Proguard倾向于忽略我的调试Proguard配置。
这是配置的样子:
buildTypes {
debug {
minifyEnabled true
proguardFiles 'proguard-debug.pro'
testProguardFile 'proguard-debug.pro'
signingConfig signingConfigs.release
}
}
我添加了
testProguardFile
,但似乎不适用于androidTest
。我正在运行mockDebug
flavor 变体。当我只运行该应用程序时,它运行良好,但是当我尝试运行位于adnroidTest
中的测试时,由于proguard警告,它将无法运行,例如根本没有处理proguard文件,并且该文件非常简单:proguard-debug.pro
-dontobfuscate
-dontoptimize
-dontwarn
在有人开始建议我为调试版本关闭proguard之前:由于multidex,我需要启用它。
最佳答案
如果您希望测试构建与实际交易尽可能接近,请尝试以下一种方法:
# build.gradle
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
testProguardFile 'proguard-test.pro'
}
和
# proguard-test.pro:
-include proguard-rules.pro
-keepattributes SourceFile,LineNumberTable
另一方面,如果仅因为multidex需要它,就可以使用if your are using minSdkVersion < 21, ProGuard is tied to multidex flag and run automatically。