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!