Crashlytics ProGuard duplicate zip entry

Estoy intentando ejecutar ProGuard en nuestra aplicación para Android. La aplicación genera y funciona bien sin ProGuard.

Cuando cambié build.gradle para tener "minifyEnabled verdadero" conseguí un montón de advertencias que pude eliminar con lo siguiente en proguard-rules.pro:

-keep class org.joda.time.** { *; } -keep class javax.** { *; } -dontwarn okio.** -dontwarn javax.naming.** -dontwarn org.joda.convert.** -dontwarn org.bouncycastle.crypto.** 

Ahora puedo obtener las siguientes advertencias y errores cuando intento crear usando ProGuard (editado para agregar mensajes de error):

 Warning:can't write resource [META-INF/COM_CRAS.SF] (Duplicate zip entry [crashlytics-1.1.13.jar:META-INF/COM_CRAS.SF]) Warning:can't write resource [META-INF/COM_CRAS.RSA] (Duplicate zip entry [crashlytics-1.1.13.jar:META-INF/COM_CRAS.RSA]) Warning:can't write resource [META-INF/maven/com.squareup.okhttp/okhttp/pom.properties] (Duplicate zip entry [crashlytics-1.1.13.jar:META-INF/maven/com.squareup.okhttp/okhttp/pom.properties]) Warning:can't write resource [META-INF/maven/com.squareup.okhttp/okhttp/pom.xml] (Duplicate zip entry [crashlytics-1.1.13.jar:META-INF/maven/com.squareup.okhttp/okhttp/pom.xml]) Warning:can't write resource [META-INF/maven/com.squareup/otto/pom.properties] (Duplicate zip entry [crashlytics-1.1.13.jar:META-INF/maven/com.squareup/otto/pom.properties]) Warning:can't write resource [META-INF/maven/com.squareup/otto/pom.xml] (Duplicate zip entry [crashlytics-1.1.13.jar:META-INF/maven/com.squareup/otto/pom.xml]) Warning:can't write resource [META-INF/maven/com.squareup.okhttp/okhttp-protocols/pom.properties] (Duplicate zip entry [crashlytics-1.1.13.jar:META-INF/maven/com.squareup.okhttp/okhttp-protocols/pom.properties]) Warning:can't write resource [META-INF/maven/com.squareup.okhttp/okhttp-protocols/pom.xml] (Duplicate zip entry [crashlytics-1.1.13.jar:META-INF/maven/com.squareup.okhttp/okhttp-protocols/pom.xml]) Error:org.gradle.internal.UncheckedException: java.io.IOException: Can't write [/Users/dano/workspace/COMPANY_NAME/COMPANY_NAME-android/COMPANY_NAME-android/COMPANY_NAME/app/build/intermediates/classes-proguard/COMPANY_NAMELive/release/classes.jar] (Can't read [/Users/dano/.gradle/caches/modules-2/files-2.1/com.crashlytics.android/crashlytics/1.1.13/e821eafa1bf489a26bdb71f95078c26785b37a1/crashlytics-1.1.13.jar(;;;;;;!META-INF/MANIFEST.MF)] (Duplicate zip entry [com/a/a/ae.class == crashlytics-1.1.13.jar:com/crashlytics/android/a.class])) Error:java.io.IOException: Can't write [/Users/dano/workspace/COMPANY_NAME/COMPANY_NAME-android/COMPANY_NAME-android/COMPANY_NAME/app/build/intermediates/classes-proguard/COMPANY_NAMELive/release/classes.jar] (Can't read [/Users/dano/.gradle/caches/modules-2/files-2.1/com.crashlytics.android/crashlytics/1.1.13/e821eafa1bf489a26bdb71f95078c26785b37a1/crashlytics-1.1.13.jar(;;;;;;!META-INF/MANIFEST.MF)] (Duplicate zip entry [com/a/a/ae.class == crashlytics-1.1.13.jar:com/crashlytics/android/a.class])) Error:java.io.IOException: Can't read [/Users/dano/.gradle/caches/modules-2/files-2.1/com.crashlytics.android/crashlytics/1.1.13/e821eafa1bf489a26bdb71f95078c26785b37a1/crashlytics-1.1.13.jar(;;;;;;!META-INF/MANIFEST.MF)] (Duplicate zip entry [com/a/a/ae.class == crashlytics-1.1.13.jar:com/crashlytics/android/a.class]) Error:java.io.IOException: Duplicate zip entry [com/a/a/ae.class == crashlytics-1.1.13.jar:com/crashlytics/android/a.class] 

He intentado lo siguiente, por varias otras consultas de SO:

En build.gradle:

 packagingOptions { exclude 'META-INF/COM_CRAS.SF' exclude 'META-INF/COM_CRAS.RSA' exclude 'META-INF/maven/com.squareup.okhttp/okhttp/pom.properties' exclude 'META-INF/maven/com.squareup.okhttp/okhttp/pom.xml' exclude 'META-INF/maven/com.squareup/otto/pom.properties' exclude 'META-INF/maven/com.squareup/otto/pom.xml' exclude 'META-INF/maven/com.squareup.okhttp-protocols/okhttp-protocols/pom.properties' exclude 'META-INF/maven/com.squareup.okhttp-protocols/okhttp-protocols/pom.xml' } 

y

 compile 'com.crashlytics.android:crashlytics:1.+' { exclude group: 'com.squareup.okhttp', module: 'okhttp' } 

En proguard-rules.pro:

 -keepattributes *Annotation*,Signature 

Y una variedad de

 -keep class <crashlytics | squareup | other> -dontwarn <crashlytics | squareup | other> 

Todavía tengo los mismos 4 errores y 8 advertencias.

Estoy convencido de que esto es algo bastante simple (y probablemente estúpido) que estoy haciendo mal, pero no he sido capaz de encontrar nada que avance la construcción.

Todas y cada una de las sugerencias serán (A) probadas y (B) apreciadas.

  • ¿Cómo utilizar las anotaciones de Java para guiar Proguard de Android?
  • Proguard no puede encontrar el método referenciado 'void allowCoreThreadTimeOut (boolean)'
  • IntelliJ / Android Studio - cómo activar proguard para obfuscate código - paso a paso?
  • Recurso no encontrado excepción después de ejecutar proguard
  • La ofuscación de Proguard está rompiendo simplexml
  • Utilizando Otto, el método sólo se suscribe si lo llamo directamente a otra parte
  • Proguard.cfg no funciona en aplicaciones exportadas usando LIBRARY
  • Progaurd issue "Advertencia: Ignorar el atributo InnerClasses para una clase interna anónima"
  • Las herramientas de compilación de Android evitan que ProGuard elimine las clases de biblioteca de appcompat no utilizadas
  • Uso de Spongycastle con Proguard
  • Uso de Proguard para eliminar clases no utilizadas en la biblioteca de Servicios de Google Play
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.