FileNotFoundException en el archivo proguard-rules.pro

Estoy usando Android Studio v.1.0 Mi archivo de construcción:

buildTypes { debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } 

Pero cuando intento hacer una compilación de la liberación, consigo un error: Error: La ejecución falló para la tarea ': app: proguardRelease'.

Java.io.FileNotFoundException: F: …. \ app \ proguard-rules.pro (archivo no encontrado)

Creo que proguard-android.txt es una parte de SDK de Android, ¿no?

¿Y por qué Android Studio no puede encontrarlo?

También intenté proguard-android.pro – el mismo resultado

Si no necesita ninguna configuración específica de ProGuard:

 buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt') } } 

(La advertencia pudo haber ocurrido)

O especificar "reglas" y ponerlo aquí:

 .../app/proguard-rules.pro 

Por ejemplo, uso "Butter Knife" y mi proguard-rules.pro se parece a:

 -keep class butterknife.** { *; } -dontwarn butterknife.internal.** -keep class **$$ViewInjector { *; } -keepclasseswithmembernames class * { @butterknife.* <fields>; } -keepclasseswithmembernames class * { @butterknife.* <methods>; } 

O, posiblemente, puede dejar build.gradle archivo como es (si no te gusta las advertencias)), Y acaba de poner un vacío proguard-rules.pro a esa ubicación.

He creado mi propio archivo proguard-android.pro y funciona correctamente para mí:

 -dontwarn org.apache.commons.** -dontwarn com.google.** -dontwarn com.j256.ormlite** -dontwarn org.apache.http** -keepattributes SourceFile,LineNumberTable -keep class com.j256.** -keepclassmembers class com.j256.** { *; } -keep enum com.j256.** -keepclassmembers enum com.j256.** { *; } -keep interface com.j256.** -keepclassmembers interface com.j256.** { *; } -keepattributes Signature # GSON Library # For using GSON @Expose annotation -keepattributes *Annotation* # Gson specific classes -keep class sun.misc.Unsafe { *; } #-keep class com.google.gson.stream.** { *; } # Application classes that will be serialized/deserialized over Gson -keep class com.google.gson.examples.android.model.** { *; } # Google Map -keep class com.google.android.gms.maps.** { *; } -keep interface com.google.android.gms.maps.** { *; } 
 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 

La siguiente línea en el archivo build.gradle de su módulo de aplicación indica que la secuencia de comandos de proguard debe aplicarse a su versión de lanzamiento. Tiene dos archivos:

  1. proguard-android.txt : es el archivo proguard predeterminado de android, que se puede encontrar en el directorio D: \ SDK \ tools \ proguard de SDK.
  2. 'Proguard-rules.pro': contiene su script proguard específico de la aplicación. Necesita crear este archivo en la carpeta raíz de su aplicación. Toda su aplicación específica proguard debe estar dentro de este archivo.

Compruebe por favor su "proguard-rules.pro" dentro de su carpeta del proyecto de la raíz. I su proyecto exportado desde eclipse debe crear 'proguard-rules.pro' dentro de la carpeta del proyecto raíz.

Una solución es descargar uno de los siguientes:

 http://dl.google.com/android/android-sdk_r22.6.2-linux.tgz http://dl.google.com/android/android-sdk_r22.6.2-windows.zip http://dl.google.com/android/android-sdk_r22.6.2-macosx.zip 

Y copie los siguientes archivos:

 tools/hprof-conv tools/support/annotations.jar tools/proguard 
  • Android: onClic no funciona con ProGuard
  • Android Studio - Creación incremental de Gradle
  • Cómo detener ProGuard de eliminar la interfaz Serializable de una clase
  • No se puede obtener jar biblioteca para trabajar con Android y Proguard
  • ¿Cómo comentas una regla en Proguard.cfg?
  • ¿Cómo usar proguard.jar personalizado en la compilación de Gradle?
  • Métodos de reflexión no funcionan cuando se utiliza proguard para la aplicación de Android
  • Ocultar cadenas en código ofuscado
  • Usar Proguard sólo para deshabilitar el registro y para reducir recursos
  • Eliminar los activos no utilizados de la biblioteca de terceros
  • Aplicación de Proguard a una aplicación existente en Google Play
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.