tutorial studio minifyenabled features defaultconfig configurar android gradle proguard

minifyenabled - no puede generar APK firmado desde el estudio de Android "Falló la ejecución de la tarea '': packageRelease''"



proguard features (5)

¡DE ACUERDO! es muy fácil ! solo siguiendo paso a paso: build.gradle: minifyEnabled false -> minifyEnabled true proguard-rules.pro: tienes que agregar las terceras bibliotecas que usas en tu proyecto como piccaso y etc. si haces esto en android studio, declina esto archivos.

-dontwarn android.support.** -dontwarn com.github.** -dontwarn com.squareup.picasso.** -dontwarn com.etsy.android.grid.**

funciona :)

Estoy usando Android Studio 1.2.2 e intenté generar APK con la configuración proguard. Pero no puedo hacerlo y tengo un mensaje de error debajo.

"Error de ejecución para la tarea '': packageRelease''.

No se puede calcular el hash de /Users/Documents/projectX/app/build/intermediates/classes-proguard/release/classes.jar "

La configuración de Proguard es simple.

-dontshrink -dontoptimize -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose

Y el archivo gradle está debajo.

apply plugin: ''com.android.application'' apply plugin: ''com.google.gms.google-services'' android { compileSdkVersion "Google Inc.:Google APIs:22" buildToolsVersion "21.1.2" defaultConfig { applicationId "com.bientus.cirque.sansotong" minSdkVersion 15 targetSdkVersion 22 versionCode 1 versionName "1.0" // multiDexEnabled true } buildTypes { debug { debuggable true } release { minifyEnabled true //proguardFiles ''proguard-project.txt'', ''proguard.cfg'' //proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-project.txt'', ''proguard.cfg'' proguardFiles ''proguard-project.txt'' } } } dependencies { compile fileTree(dir: ''libs'', include: [''*.jar'']) compile ''com.android.support:appcompat-v7:22.0.0'' compile "com.google.android.gms:play-services:7.5.0" // compile ''com.android.support:multidex:1.0.0'' } buildscript { repositories { // mavenCentral() jcenter() } dependencies { classpath ''com.android.tools.build:gradle:1.2.3'' classpath ''com.google.gms:google-services:1.3.0-beta1'' } }

¿Alguien puede dar alguna idea o pensamiento? ¡Muchas gracias!


Funcionó después de establecer followings en ''proguard-project.txt''. Obviamente, el gradle debe establecerse para este archivo.

-dontwarn android.support.v7.** -keep class android.support.v7.** { *; } -keep interface android.support.v7.** { *; }


Mira tu producción de compilación. Es posible que tenga advertencias de protección allí, como si tuviera 2 bibliotecas que comparten alguna clase (con versiones potentialy diferentes).

Esto podría evitar que proguard calcule un hash.

Tuve el mismo problema al tener tanto openIAB como opfIAB (ambos usan Amazon y Google IAB) en mi compilación. La eliminación de una de estas bibliotecas resolvió mi problema


Solo agregue a las reglas de proguardia del proyecto:

-keep public class com.google.android.gms.** -dontwarn com.google.android.gms.**


También tuve el problema y la mejor manera de resolverlo es: ir a la consola gradle y ver dónde hay una advertencia, por ejemplo:

Advertencia: com.squareup.picasso.OkHttpDownloader: no se puede encontrar la clase referenciada com.squareup.okhttp.OkHttpClient

Ahora abra el archivo de reglas de proguard y desplácese al final y agregue la línea

-dontwarn com.squareup.okhttp.**

Para cualquier clase faltante que encuentres en la consola gradle, básicamente agregas la línea

-dontwarn followed by class name

Espero que esto funcione para todos también. ¡Buena suerte!