3
votes

I am trying to config the proguard in android studio for my release build but I am getting error and warnings below:

Error:Execution failed for task ':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$1.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:

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'
}

dependencies {

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')

}

2
Please post you build.gradle file. It seems two of your dependencies declare the jackson library and that is causing the error.Edson Menegatti
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' }user3152367

2 Answers

-1
votes

It seems that the problem is caused by conflicting LICENSE, NOTICE and other files. Instead of excluding, check if something like this fixes the issue:

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'
}
1
votes

This can only arise when jackson-databind-2.2.3.jar is being used by more than 1 project. The only resolution is to either use maven central repository or create a third project and use it as a dependency in the projects using jackson-databind-2.2.3.jar earlier.