Erreur: L’exécution a échoué pour la tâche ‘: app: packageRelease’. > Impossible de calculer le hachage de /../AndroidStudioProjects/../classes.jar

J’essaie de faire une version sur une application Android et je continue à avoir cette erreur de:

Impossible de calculer le hachage de /../AndroidStudioProjects/../classes.jar

Et puis quand je regarde dans ce répertoire pour “classes.jar”, le fichier n’est pas là. Dois-je créer ce fichier moi-même avec une tâche de graduation?

Il y a quelque chose avec proguard ici, mais cela ne donne pas beaucoup d’informations utiles autres que “Impossible de calculer le hash ….”

Voici mon fichier gradle.build:

apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' android { comstackSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.example" minSdkVersion 11 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { debug { buildConfigField "Ssortingng", "SERVER_URL", '"http://10.0.2.2:3000"' } release { buildConfigField "Ssortingng", "SERVER_URL", '"https://example.com"' minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debugRelease { buildConfigField "Ssortingng", "SERVER_URL", '"https://example.com"' debuggable true jniDebuggable false renderscriptDebuggable false minifyEnabled false zipAlignEnabled true } } productFlavors { } } dependencies { comstack fileTree(dir: 'libs', include: ['*.jar']) comstack 'com.android.support:appcompat-v7:22.1.1' comstack 'com.android.support:recyclerview-v7:22.1.1' comstack 'com.android.support:cardview-v7:22.1.1' comstack 'com.google.android.gms:play-services-gcm:7.5.0' } 

Si quelqu’un pouvait m’aider à déboguer ce problème, ce serait génial.

Toutes les réponses actuelles à cette question ne font que donner les règles Proguard qui ont fonctionné pour eux, chaque correction sera différente. Tout d’abord, confirmez qu’il s’agit d’un problème Proguard en vérifiant que le répertoire classes-proguard se trouve quelque part dans le message d’erreur: Unable to compute hash of /Users/Documents/projectX/app/build/intermediates/classes-proguard/release/classes.jar

Cela signifie qu’il est dû à une erreur Proguard antérieure. Vous devez donc faire défiler la fenêtre Messages ou la fenêtre Gradle Console pour vérifier les avertissements ou les erreurs que vous obtenez. À titre d’exemple, dans mon projet actuel, la bibliothèque Picasso de Square est à l’origine de l’erreur: Warning: com.squareup.picasso.OkHttpDownloader: can't find referenced class com.squareup.okhttp.OkHttpClient . J’ai juste ajouté -dontwarn com.squareup.okhttp.** pour ignorer les avertissements, et l’application fonctionnait toujours normalement.

Beaucoup d’erreurs Proguard seront des avertissements à propos d’une classe, donc il est fréquent que l’ajout de -dontwarn pour n’importe quelle classe le provoque dans votre projet.

Je sais que la méthode StackOverflow consiste simplement à afficher le message d’erreur, à copier et coller la réponse supérieure et à espérer que tout ira pour le mieux, mais ici vous devez le comprendre un peu et comprendre les règles d’évolution pour vous!

Pour moi, les deux lignes suivantes dans proguard.cfg ont aidé:

  -keep class com.google.android.gms.** { *; } -dontwarn com.google.android.gms.** 

J’ai compris le problème:

Ouvrez le proguard-rules.pro pour votre projet et ajoutez-le au bas:

 -dontwarn java.nio.file.Files -dontwarn java.nio.file.Path -dontwarn java.nio.file.OpenOption -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 

Fondamentalement, comment j’ai résolu ce problème, j’ai essayé de lancer mon application en mode “release” et j’ai reçu un tas d’erreurs similaires à ce gars-là: https://github.com/square/okio/issues/144

J’ai suivi à peu près ce qu’il a dit et corrigé.

J’espère que cela peut aider les autres à générer leurs fichiers APK!

Je sais qu’il y a déjà une réponse ici, mais ma situation était un peu différente et je voulais la partager.

Pour moi, le fichier proguard de mon projet, à savoir proguard-rules.pro , a été renommé en quelque sorte proguard-android.txt .

Le proguard-android.txt est réservé aux règles de proguard par défaut d’Android, donc essentiellement, je remplaçais le fichier proguard d’Android, qui causait des ravages, et j’obtiendrais le message Impossible de calculer le hachage .

Une fois que j’ai changé le nom de fichier de mon projet de proguard-android.txt à proguard-rules.pro j’ai pu faire avancer les choses.

Je sais que c’est une vieille question mais peut-être que cette réponse fonctionne pour quelqu’un. J’ai ajouté -dontwarn butterknife.** à proguard puis gradu construit correctement.

La désactivation de l’option minifyEnabled à partir de mon fichier de graduation a corrigé l’erreur dans ma génération.

build.gradle

 buildTypes { release { // DISABLE OPTION //minifyEnabled true proguardFiles 'proguard.cfg' } }