错误:任务':app:packageRelease'的执行失败。 > java.io.IOException:无法读取zip文件

时间:2017-03-21 09:52:30

标签: android proguard android-proguard

当我尝试构建发布版本时,我收到以下错误。我正在使用android studio 2.3。我已经在下面添加了我的gradle和proguard规则文件,我使用mac与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文件

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

项目级别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
}

2 个答案:

答案 0 :(得分:11)

此问题在项目中引用here,包括非ASCII类名。该问题将从Gradle Android插件版本2.4(目前尚未发布)中解决。

另一种方法是降级到2.2.3:

classpath 'com.android.tools.build:gradle:2.2.3'

答案 1 :(得分:0)

对我来说,这个错误发生在我在Windows上构建项目时,只有管理员用户才能进行写访问,而Android工作室是以常规模式(非管理员模式)启动的。当我使用“以管理员身份运行”启动Android工作室时,可以使用写访问权限并成功生成.apk。