java - Error: Falló la ejecución de la tarea '': aplicación: packageRelease''.>No se puede calcular el hash de/../AndroidStudioProjects/../classes.jar
gradle android-gradle (6)
Estoy tratando de hacer una compilación de ''lanzamiento'' en una aplicación de Android y sigo recibiendo este error de:
No se puede calcular el hash de /../AndroidStudioProjects/../classes.jar
Y luego, cuando busco en ese directorio ''classes.jar'', el archivo no está allí. ¿Tengo que crear este archivo yo mismo con una tarea gradle?
Aquí está sucediendo algo con Proguard, pero no está dando mucha información útil que no sea ''No se puede calcular el hash ... "
Aquí está mi archivo gradle.build:
apply plugin: ''com.android.application''
apply plugin: ''com.google.gms.google-services''
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.example"
minSdkVersion 11
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
debug {
buildConfigField "String", "SERVER_URL", ''"http://10.0.2.2:3000"''
}
release {
buildConfigField "String", "SERVER_URL", ''"https://example.com"''
minifyEnabled true
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
debugRelease {
buildConfigField "String", "SERVER_URL", ''"https://example.com"''
debuggable true
jniDebuggable false
renderscriptDebuggable false
minifyEnabled false
zipAlignEnabled true
}
}
productFlavors {
}
}
dependencies {
compile fileTree(dir: ''libs'', include: [''*.jar''])
compile ''com.android.support:appcompat-v7:22.1.1''
compile ''com.android.support:recyclerview-v7:22.1.1''
compile ''com.android.support:cardview-v7:22.1.1''
compile ''com.google.android.gms:play-services-gcm:7.5.0''
}
Si alguien pudiera ayudarme a depurar este problema, sería genial.
Deshabilitar la opción minifyEnabled de mi archivo gradle corrigió el error en mi compilación.
build.gradle
buildTypes {
release {
// DISABLE OPTION
//minifyEnabled true
proguardFiles ''proguard.cfg''
}
}
Para mí, las siguientes 2 líneas dentro de proguard.cfg me ayudaron:
-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**
Resolví el problema:
Abra el
proguard-rules.pro
para su proyecto y agréguelo al final:
-dontwarn java.nio.file.Files
-dontwarn java.nio.file.Path
-dontwarn java.nio.file.OpenOption
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
Básicamente, cómo lo resolví fue que intenté ejecutar mi aplicación en modo ''lanzamiento'' y obtuve un montón de errores similares a este tipo aquí: https://github.com/square/okio/issues/144
Seguí más o menos lo que dijo y lo arreglé.
¡Espero que esto pueda ayudar a otros a generar sus APK!
Sé que esta es una vieja pregunta, pero tal vez esta respuesta funcione para alguien.
-dontwarn butterknife.**
para proteger y luego construir correctamente.
Sé que ya hay una respuesta aquí, pero mi situación era un poco diferente y quería compartirla.
Para mí, el archivo proguard de mi proyecto, a saber,
proguard-rules.pro
, de alguna manera fue renombrado a
proguard-android.txt
.
proguard-android.txt
está reservado para las reglas de protección predeterminadas de Android, por lo que esencialmente estaba anulando el archivo de protección de Android, lo que estaba causando estragos, y obtendría el
mensaje No se puede calcular el hash
.
Una vez que cambié el nombre de archivo en mi proyecto de
proguard-android.txt
a
proguard-rules.pro
pude hacer que las cosas funcionaran.
Todas las respuestas actuales a esta pregunta solo dan las reglas de Proguard que funcionaron para ellos, cada solución será diferente.
En primer lugar, confirme que es un problema de Proguard comprobando que el directorio classes-proguard está en alguna parte del mensaje de error, algo como esto:
Unable to compute hash of /Users/Documents/projectX/app/build/intermediates/classes-proguard/release/classes.jar
Esto significa que es causado por un error anterior de Proguard, por lo que debe desplazarse hacia arriba en la ventana Mensajes o en la ventana Consola Gradle y verificar qué advertencias o errores está recibiendo.
Solo como ejemplo, en mi proyecto actual, la biblioteca Picasso de Square está causando el error:
Warning: com.squareup.picasso.OkHttpDownloader: can''t find referenced class com.squareup.okhttp.OkHttpClient
.
Acabo de agregar
-dontwarn com.squareup.okhttp.**
para ignorar las advertencias, y la aplicación aún funcionaba normalmente.
Muchos de los errores de Proguard serán advertencias sobre alguna clase, por lo que a menudo funciona simplemente agregar -dontwarn para cualquier clase que lo esté causando en su proyecto.
Sé que la forma de es solo el mensaje de error de Google, copie y pegue la respuesta principal y espere lo mejor, ¡pero aquí debe comprenderlo un poco y descubrir las reglas de protección para usted!