testProguardFiles忽略了我的规则。无法针对发布版本类型运行Espresso测试

时间:2017-12-15 10:20:58

标签: android proguard android-espresso

我希望针对发布版本类型运行我的Android检测测试。这就是我所做的。

按照建议的here更改了测试构建类型:

android {

    testBuildType "release"
}

proguard-test-rules.pro目录中创建app/并将其添加到发布版本类型部分:

buildTypes {

    release {
        signingConfig signingConfigs.release

        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-test-rules.pro'
    }
}

proguard-test-rules.pro包含唯一的一行:

-dontwarn okio.**

但是,当我运行命令./gradlew clean connectedMyFlavorReleaseAndroidTest时,我在控制台输出中看到以下错误:

Warning: okio.Okio: can't find referenced class java.nio.file.Files

所以看起来proguard-test-rules.pro被忽略了。为什么? 当然我可以使用this solution,但我只是想知道为什么忽略proguard-test-rules.pro。我也试过了proguardFile 'proguard-test-rules.pro'但也没用。

我的Gradle

classpath 'com.android.tools.build:gradle:3.0.1'

1 个答案:

答案 0 :(得分:1)

要让Android读取.pro文件,您需要告诉它接受它:

https://issuetracker.google.com/issues/37104292

buildTypes {

 release {
    signingConfig signingConfigs.release
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
    //Something like this
    proguardFiles fileTree(dir: 'vendor', include: ['*.pro']).asList().toArray()

    testProguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-test-rules.pro'
 }
}

希望这有帮助!