minifyEnabled true 时构建 APK 时出错

Error building APK when minifyEnabled true

我需要启用混淆器,所以我将 minifyEnabled 设置为 true。但是,我在尝试构建发布 APK 时收到以下错误:

Error:Execution failed for task ':app:packageRelease'. Unable to compute hash of .../app/build/intermediates/classes-proguard/release/classes.jar

编辑:听起来我需要根据我正在使用的库更新我的proguard-rules。这是我的依赖项:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'com.parse.bolts:bolts-android:1.+'
    compile 'com.parse:parse-android:1.+'
    compile('com.crashlytics.sdk.android:crashlytics:2.5.2@aar') {
    transitive = true;
    }
    compile('com.mopub.sdk.android:mopub:4.0.0@aar') {
        transitive = true;
    }
}

找出要为其中的每一个添加混淆规则的最佳方法是什么?到目前为止,我只找到了 ButterKnife 的

-dontwarn 如果在不抛出错误的情况下删除所需的依赖项,则所有内容都可能会导致另一个问题。

您最好的办法是通过检查您的日志输出(或将其张贴在此处以便其他人查看)找到阻止构建发生的库,然后使用 -keep[ 进行配置=21=] 或 -dontwarn 根据需要,在 proguard-rules.pro 文件中。

在大多数情况下,人们之前已经为您正在使用的相同库完成了此操作,您只需要找到一个示例规则文件并查看他们的配置以了解它是如何完成的,like this one for OkHttp, and teams often have this in the setup section of library projects on GitHub like this one for Retrofit.