android - warning - Falla de construcción de Gradle
version gradle android (7)
Mi proyecto compila y se ejecuta bien en modo de depuración, pero cuando intento generar un apk firmado, surgen errores. Esto aparece en el registro de mensajes:
: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
He intentado todas las formas posibles de remediar esto actualizando mis herramientas de compilación, utilizando la última versión de Gradle, comprobando todas las dependencias y el error sigue apareciendo.
Estoy bastante seguro de que la biblioteca de soporte de v4 está presente en el proyecto ya que no se producen errores en el modo de depuración.
Creo que su aplicación build.gradle buildTypes > release > minifyEnabled is true
Eso causa que aparezca este mensaje de error.
Evite este mensaje de error, configure buildTypes > release > minifyEnabled is false
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
}
}
El archivo predeterminado de ProGuard ya tiene una regla para ignorar las advertencias de la biblioteca de soporte. Si no lo tienes puedes agregarlo a tu archivo.
-dontwarn android.support.**
pero sería mejor agregar el predeterminado. Ver la configuración de Proguard en Android Developers.
Esto también podría suceder debido a errores / advertencias relacionados con los archivos .jar incluidos. Consulte la salida de la compilación para ver las advertencias / errores del programa.
Tuve un problema relacionado con el archivo jar opencsv. La sugerencia de Lakedaemon en el comentario anterior me ayudó y se resolvió.
Intenta buscar en el mensaje de error completo . Puede contener información que incluya una biblioteca dos veces. Este fue el problema en mi caso y se solucionó después de eliminar los duplicados.
Resulta que había omitido la línea getDefaultProguardFile(''proguard-android.txt'')
en los archivos de proguard y estaba usando proguard-rules.pro
También tuve este problema al actualizar todo lo que está construido en relación con 23 (bibliotecas de Android, SDK, etc.).
Esta configuración de programa lo arregló para mí:
-dontwarn org.apache.http.**
-dontwarn android.net.http.AndroidHttpClient
-dontwarn com.google.android.gms.**
-dontwarn com.android.volley.toolbox.**
añadido estas dos líneas en progaurd
-dontwarn android.net.http.AndroidHttpClient
-dontwarn com.google.android.gms.**
y funciona..
Está relacionado con la biblioteca utilizada en el proyecto.