web-dev-qa-db-fra.com

Gradle Build Failure

Mon projet se compile et s’exécute bien en mode débogage, mais lorsque j’essaie de générer un apk signé, des erreurs se produisent. Cela apparaît dans le journal des messages:

:app:proguardRelease
Warning:Android.support.v4.app.DialogFragment: can't find referenced class Android.support.v4.app.DialogFragment$DialogStyle
Warning:Android.support.v4.app.FragmentTransaction: can't find referenced class Android.support.v4.app.FragmentTransaction$Transit
Warning:Android.support.v4.view.ViewCompat: can't find referenced class Android.support.v4.view.ViewCompat$ResolvedLayoutDirectionMode
Warning:Android.support.v4.view.ViewCompat: can't find referenced class Android.support.v4.view.ViewCompat$LayoutDirectionMode
Warning:Android.support.v4.view.ViewCompat: can't find referenced class Android.support.v4.view.ViewCompat$LayerType
Warning:Android.support.v4.view.ViewCompat: can't find referenced class Android.support.v4.view.ViewCompat$AccessibilityLiveRegion
Warning:Android.support.v4.view.ViewCompat: can't find referenced class Android.support.v4.view.ViewCompat$ImportantForAccessibility
Warning:Android.support.v4.view.ViewCompat: can't find referenced class Android.support.v4.view.ViewCompat$OverScroll
Warning:Android.support.v4.widget.DrawerLayout: can't find referenced class Android.support.v4.widget.DrawerLayout$EdgeGravity
Warning:Android.support.v4.widget.DrawerLayout: can't find referenced class Android.support.v4.widget.DrawerLayout$LockMode
Warning:Android.support.v4.widget.DrawerLayout: can't find referenced class Android.support.v4.widget.DrawerLayout$State
Warning:there were 11 unresolved references to classes or interfaces.
         You may need to add missing library jars or update their versions.
         If your code works fine without the missing classes, you can suppress
         the warnings with '-dontwarn' options.
         (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)
Exception while processing task 
Java.io.IOException: Please correct the above warnings first.
    at proguard.Initializer.execute(Initializer.Java:473)
    at proguard.ProGuard.initialize(ProGuard.Java:233)
    at proguard.ProGuard.execute(ProGuard.Java:98)
    at proguard.gradle.ProGuardTask.proguard(ProGuardTask.Java:1074)
    at com.Android.build.gradle.tasks.AndroidProGuardTask.doMinification(AndroidProGuardTask.Java:139)
    at com.Android.build.gradle.tasks.AndroidProGuardTask$1.run(AndroidProGuardTask.Java:115)
    at com.Android.builder.tasks.Job.runTask(Job.Java:48)
    at com.Android.build.gradle.tasks.SimpleWorkQueue$EmptyThreadContext.runTask(SimpleWorkQueue.Java:41)
    at com.Android.builder.tasks.WorkQueue.run(WorkQueue.Java:227)
    at Java.lang.Thread.run(Thread.Java:745)
:app:dexRelease UP-TO-DATE
:app:crashlyticsStoreDeobsRelease
:app:crashlyticsUploadDeobsRelease
:app:validateExternalOverrideSigning
:app:packageRelease FAILED
Error:Execution failed for task ':app:packageRelease'.
> Unable to compute hash of /home/kombo/RAL/Mpasho/app/build/intermediates/classes-proguard/release/classes.jar

J'ai essayé tous les moyens possibles pour remédier à cela en mettant à jour mes outils de construction, en utilisant la dernière version de gradle, en vérifiant toutes les dépendances et l'erreur persiste.

Je suis à peu près sûr que la bibliothèque de support v4 est présente dans le projet car aucune erreur ne survient en mode débogage.

28
Alex Kombo

J'ai également eu ce problème lors de la mise à niveau de tout ce qui est lié à 23 (bibliothèques Android, SDK, etc.).

Cette configuration de proguard corrigea ça pour moi:

-dontwarn org.Apache.http.**
-dontwarn Android.net.http.AndroidHttpClient
-dontwarn com.google.Android.gms.**
-dontwarn com.Android.volley.toolbox.**

La source

34
Niklas

Il s'avère que j'avais omis la ligne getDefaultProguardFile('proguard-Android.txt') dans les fichiers de proguard et que je n'utilisais que proguard-rules.pro

9
Alex Kombo

.__-dontwarn Android.net.http.AndroidHttpClient -dontwarn com.google.Android.gms.**

and it works..

It is related to library used in project.

4
Lokesh Tiwari

Cela pourrait également se produire en raison d’erreurs/avertissements liés aux fichiers .jar inclus. 

J'ai eu un problème lié au fichier jar opencsv. Un indice de Lakedaemon dans le commentaire ci-dessus m'a aidé et résolu.

1
Tejasvi Hegde

Le fichier ProGuard par défaut contient déjà une règle pour ignorer les avertissements de la bibliothèque de support. Si vous ne l'avez pas, vous pouvez ajouter à votre dossier

-dontwarn Android.support.**

mais il serait préférable d’ajouter celui par défaut. Voir Proguard configuration @ Android Developers

1
Salem

Essayez de rechercher dans le message d'erreur whole. Il peut contenir des informations indiquant que vous incluez une bibliothèque deux fois. C'était le problème dans mon cas et il a été corrigé après la suppression des doublons inclus.

0
Alex Newman