Error:Execution failed for task ':app:packageRelease'. > java.io.IOException: Failed to read zip file

11,792

This issue is referenced here which occurs in project including non ASCII class names. The issue will be addressed from version 2.4 of gradle Android plugin (not yet released at this time).

An alternative is to downgrade to 2.2.3 :

classpath 'com.android.tools.build:gradle:2.2.3'
Share:
11,792
Deepak John
Author by

Deepak John

Updated on June 18, 2022

Comments

  • Deepak John
    Deepak John almost 2 years

    I get the following error when i try to build release build. I am using android studio 2.3 . I have added my gradle and proguard rules files below and i ma using mac with mac os X

    Error:Execution failed for task ':app:packageRelease'.
    > java.io.IOException: Failed to read zip file '/Users/username/Documents/Android Projects/Project Name/app/build/intermediates/transforms/proguard/release/jars/3/1f/main.jar'.
    

    proguard rules file

    -keepclassmembers class * {
        @android.webkit.JavascriptInterface <methods>;
    }
    
    -keepattributes JavascriptInterface
    -keepattributes *Annotation*
    
    -dontwarn com.razorpay.**
    -keep class com.razorpay.** {*;}
    
    -optimizations !method/inlining/*
    
    -keepclasseswithmembers class * {
      public void onPayment*(...);
    }
    
    -keep @interface butterknife.*
    
    -keepclasseswithmembers class * {
        @butterknife.* <fields>;
    }
    
    -keepclasseswithmembers class * {
        @butterknife.* <methods>;
    }
    
    -keepclasseswithmembers class * {
        @butterknife.On* <methods>;
    }
    
    -keep class **$$ViewInjector {
        public static void inject(...);
        public static void reset(...);
    }
    
    -keep class **$$ViewBinder {
        public static void bind(...);
        public static void unbind(...);
    }
    
    
    
    -keep class com.google.common.** {*;}
    
    
    -dontwarn sun.misc.Unsafe
    -dontwarn javax.annotation.**
    

    gradle file

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 25
        buildToolsVersion "25.0.2"
        defaultConfig {
            applicationId "com.company.projectname"
            minSdkVersion 15
            targetSdkVersion 25
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    repositories {
        mavenCentral()
    }
    
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        compile 'com.razorpay:checkout:1.2.1'
        compile 'com.android.support:appcompat-v7:25.1.0'
        compile 'com.jakewharton:butterknife:8.5.1'
        compile 'jp.wasabeef:picasso-transformations:2.1.0'
        compile 'com.makeramen:roundedimageview:2.3.0'
        compile 'com.github.greenfrvr:hashtag-view:1.2.1'
        compile 'com.leaking.slideswitch:slideswitch:1.0.0'
        compile 'com.squareup.picasso:picasso:2.5.2'
        compile 'uk.co.chrisjenx:calligraphy:2.2.0'
        compile 'com.android.volley:volley:1.0.0'
        compile 'com.android.support:recyclerview-v7:25.1.0'
        compile 'com.github.devlight:infinitecycleviewpager:1.0.2'
        annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
    
        testCompile 'junit:junit:4.12'
    }
    

    project level gradle

    // Top-level build file where you can add configuration options common to all sub-projects/modules.
    
    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.3.0'
    
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }
    
    allprojects {
        repositories {
            jcenter()
            maven {
                url 'https://dl.bintray.com/leaking/maven'
            }
        }
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    
  • nullvoid
    nullvoid about 7 years
    I was just going to move to v2.2.3 of Android Studio, this saved me. Thanks alot.
  • rakshakhegde
    rakshakhegde about 7 years
    These non-ascii chars are coming from Razorpay dependencies. If you check their code, they're using obfuscation that uses non-ascii chars. Seems they're taking great pains to make deciphering their SDK harder XD
  • Muhammad Riyaz
    Muhammad Riyaz about 7 years
    Is there a way to enable instant run in this case??