Proguard 在 Android Studio 中构建。出现错误

proguard build in Android Studio. Getting error

我正在尝试在 android studio 中为我的发布版本配置混淆器,但我收到以下错误和警告:

错误:任务“:myAccount_S:proguardRelease”执行失败。

java.io.IOException: Can't write [C:\Users\mgi\AndroidStudioProjects\MyProjects\myAccount_S\build\intermediates\classes-proguard\release\classes.jar] (Can't read [C:\Users\mgi\AndroidStudioProjects\MyAccountProjects\myAccount_S\build\intermediates\exploded-aar\MyAccountProjects\myLibrary\unspecified\libs\PushTracker-1.3.0-tracfone.jar(;;;;;;!META-INF/MANIFEST.MF)] (Duplicate zip entry [PushTracker-1.3.0-tracfone.jar:com/mgage/push/tracker/PushManager.class])) :myAccount_S:proguardRelease FAILED Warning:can't write resource [META-INF/NOTICE] (Duplicate zip entry [jackson-databind-2.2.3.jar:META-INF/NOTICE]) Warning:can't write resource [META-INF/LICENSE] (Duplicate zip entry [jackson-databind-2.2.3.jar:META-INF/LICENSE])

gradle:</p> <pre><code>buildTypes { release { minifyEnabled true proguardFile getDefaultProguardFile('proguard-android.txt') } } packagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/MANIFEST' }

依赖关系 {

compile project(':facebookSDK')
compile 'com.android.support:support-v4:19.1.0'
compile 'com.android.support:appcompat-v7:19.1.0'
compile 'com.google.android.gms:play-services:6.5.87'
compile files('libs/BxLibrary-1.4.14.jar')
compile files('libs/commons-io-1.3.2.jar')
compile files('libs/jackson-annotations-2.2.3.jar')
compile files('libs/jackson-core-2.2.3.jar')
compile files('libs/jackson-databind-2.2.3.jar')
compile files('libs/libGoogleAnalyticsServices.jar')
compile files('libs/PushTracker-1.3.0.jar')
compile files('libs/robospice-1.4.14.jar')
compile files('libs/robospice-cache-1.4.14.jar')

}

看来是LICENSE、NOTICE等文件冲突导致的问题。不要排除,而是检查这样的事情是否解决了问题:

packagingOptions {
    pickFirst 'META-INF/NOTICE'
    pickFirst 'META-INF/LICENSE'
    pickFirst 'META-INF/MANIFEST'
    pickFirst 'META-INF/LICENSE.txt'
    pickFirst 'META-INF/NOTICE.txt'
    pickFirst 'META-INF/MANIFEST'
}

只有当 jackson-databind-2.2.3.jar 被超过 1 个项目使用时才会出现这种情况。唯一的解决办法是要么使用 maven 中央存储库,要么创建第三个项目并将其用作项目中使用 jackson-databind-2.2.3.jar 之前的依赖项。