我正在尝试将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

10-07 19:30
查看更多