尝试在 ProGuard 中启用缩小时出现 DexGuard 错误

问题描述

我正在尝试使用 ProGuard 在 Android 应用中启用缩小。

当我将 minifyEnabled 设置为 false 时,它会构建,但一旦我将其设置为 true

buildTypes {

    debug {
        minifyEnabled false
        jniDebuggable true
        versionNameSuffix '_DEBUG'
        zipAlignEnabled true
    }
    release {
        minifyEnabled true
        proguardFile getDefaultdexguardFile('dexguard-release.pro')
        proguardFile 'dexguard-project.txt'
        jniDebuggable false
        signingConfig signingConfigs.release
    }

我收到一个 gradle 同步错误

ERROR: minifyEnabled is set to 'true' for variant <name of the variant>.

和堆栈跟踪状态:

org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':MainApp'
Caused by: org.gradle.api.GradleException: Errors occurred during dexguard plugin configuration.

dexguard 在这里要做什么?

解决方法

Dexguard 的文档说:

DexGuard 希望其输入不会被混淆,因此请确保您在此处指定的所有变体都没有将 minifyEnabled 选项设置为 true。

您不能在同一个库中同时使用 Dexugard 和 Proguard。您必须禁用 Dexguard 或 Proguard。

Dexguard 是 Progurad 的改进(和付费)版本。当您拥有 Dexguard 时,我看不出有任何理由使用 Proguard。