2017-03-21 1 views
5

Je reçois l'erreur suivante lorsque j'essaie de générer la version finale. J'utilise Android Studio 2.3. J'ai ajouté mes Gradle et règles ProGuard fichiers ci-dessous et ima en utilisant Mac avec Mac OS XErreur: L'exécution a échoué pour la tâche ': app: packageRelease'. > java.io.IOException: Impossible de lire le fichier zip

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

règles ProGuard fichier

-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.** 

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

niveau du projet 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 
} 
+0

Je suppose que vous avez essayé 'clean project' et' build', n'est-ce pas? – azizbekian

+0

poster votre fichier de gradle de niveau de projet aussi –

+0

oui j'ai essayé que @azizbekian –

Répondre

11

Ce numéro est référencé here qui se produit dans le projet, y compris les noms de classes non ASCII. Le problème sera résolu à partir de la version 2.4 du plugin Android (pas encore disponible pour le moment).

Une alternative est de revenir à la version 2.2.3:

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

merci pour la solution –

+0

Je voulais simplement passer à la version 2.2 d'Android Studio, cela m'a sauvé. Merci beaucoup. – nullvoid

+3

Ces caractères non-ascii proviennent des dépendances de Razorpay. Si vous vérifiez leur code, ils utilisent l'obfuscation qui utilise des caractères non ascii. On dirait qu'ils prennent beaucoup de mal pour déchiffrer leur SDK plus difficile XD – rakshakhegde

0

Pour moi, cette erreur est survenue quand je la création de projets sous Windows, où a eu accès en écriture uniquement aux utilisateurs admin, et le studio Android a été lancé en un mode normal (pas en mode administrateur). Lorsque j'ai lancé Android studio avec "Exécuter en tant qu'administrateur", l'accès en écriture était disponible et .apk a été généré avec succès.