从 Android Studio 构建替代 buildType 时,ProGuard 不会混淆

ProGuard doesn't obfuscate when building alternative buildType from Android Studio

所以简而言之,当我从 Android Studio 构建替代 buildType 时,ProGuard 不会混淆源代码,但当我使用 "Generate Signed APK..." 选项创建 apk 文件时,它会起作用。

此处还有更多详细信息:Android Studio 2.1.1,Gradle 版本:2.10,插件版本 .2.1.0

我有 3 种构建类型,配置如下:

buildTypes {
    release {
        minifyEnabled true
        ...
        proguardFile 'proguard-rules.pro'
        proguardFile getDefaultProguardFile('proguard-android.txt')
        signingConfig signingConfigs.release
    }
    releaseDebug {
        debuggable true
        minifyEnabled true
        ...
        proguardFile 'proguard-rules.pro'
        proguardFile getDefaultProguardFile('proguard-android.txt')
        signingConfig signingConfigs.release
    }
    debug {
        debuggable true
        minifyEnabled false
        ...
        proguardFile getDefaultProguardFile('proguard-android.txt')
        testProguardFile 'proguard-rules-test.pro'
        signingConfig signingConfigs.release
    }
}

我 运行 直接从 Android Studio 申请并得到这样的结果:

当我使用 "Generate Signed APK..." 选项时:

是构建系统问题还是我遗漏了什么?

P.S。只是为了澄清,已经为 releaseDebug 构建类型启用了 minifyEnabled,ProGuard 正在运行,但在这种特殊情况下不起作用。这与调试模式无关。

最后,经过一些测试,我发现这个问题是由 releaseDebug 配置中的 debuggable true 语句引起的。

因此,如果您在替代构建类型中使用 debuggable trueminifyEnabled true 语句,Android Studio(或 Gradle)将不会使用 ProGuard 混淆。