我正在尝试配置proguard以将其与我的espresso UI测试风格一起使用。事情是Proguard倾向于忽略我的调试proguard配置。
这是配置的外观:
buildTypes {
debug {
minifyEnabled true
proguardFiles 'proguard-debug.pro'
testProguardFile 'proguard-debug.pro'
signingConfig signingConfigs.release
}
}
我添加了testProguardFile
,但它似乎不适用于androidTest
。我正在运行mockDebug
味道变体。当我刚运行应用程序时,它运行正常,但是当我尝试运行位于adnroidTest
的测试时,由于proguard警告,它将无法运行,就像proguard文件根本没有被处理而且文件是很直接:
proguard-debug.pro
-dontobfuscate
-dontoptimize
-dontwarn
在有人开始建议我为调试版本关闭proguard之前:我需要启用它,因为multidex。
答案 0 :(得分:11)
如果您希望您的测试版本尽可能接近真实交易,请尝试以下方法:
# 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。
答案 1 :(得分:3)
您还需要添加默认的proguard规则:
proguardFiles getDefaultProguardFile('proguard-android.txt')
此行可以删除,因为它是重复的:
testProguardFile 'proguard-debug.pro'