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

Posted

技术标签:

【中文标题】尝试在 ProGuard 中启用缩小时出现 DexGuard 错误【英文标题】:DexGuard error while trying to enable minifying in ProGuard 【发布时间】:2021-04-12 08:32:25 【问题描述】:

我正在尝试使用 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 和 ProGuard。 【参考方案1】:

Dexguard 的文档说:

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

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

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

【讨论】:

以上是关于尝试在 ProGuard 中启用缩小时出现 DexGuard 错误的主要内容,如果未能解决你的问题,请参考以下文章

启用 proguard 的 Android 单元测试

Android ProGuard +MultiDex 导致 ClassNotFoundException

使用 Android Studio 签署 APK 时出现 Proguard 错误

尝试使用 ProGuard 优化 Java+Scala 时出现 java.lang.***Error

反编译apk时出现异常

签署 Android 应用程序时出现错误 Proguard