Android – Proguard error duplicado de entrada zip
Estoy tratando de usar proguard en una aplicación de Android que utiliza un proyecto de biblioteca android y estoy recibiendo el siguiente error:
java.io.IOException: Can't write [/private/var/folders/Pg/PgUpPJQ-E5qxL7jX6kpdCE+++TI/-Tmp-/android_3140050575281008652.jar] (Can't read [proguard.ClassPathEntry@1f8d244] (Duplicate zip entry [be.class == android_144638064543155619.jar:com/comp/dp/library/R$anim.class])) at proguard.OutputWriter.writeOutput(OutputWriter.java:224) at proguard.OutputWriter.execute(OutputWriter.java:120) at proguard.ProGuard.writeOutput(ProGuard.java:391) at proguard.ProGuard.execute(ProGuard.java:152) at proguard.ProGuard.main(ProGuard.java:499)
Mi archivo proguard.cfg es este junto con algunos -libraryjars
haciendo referencia a rt.jar
y un par de otras bibliotecas dependientes.
- Exportación de un proyecto de Android durante el uso de proguard en adt & sdk 20
- Excluir paquetes de proguard
- Las cadenas de card.io no cambian con proguard
- Proguard con el proyecto android utilizando bibliotecas (de compatibilidad)
- ¿Cómo generar proguard-android.txt automáticamente?
Mi conjetura es que este problema es algo relacionado con usar el proyecto de la biblioteca y que proguard está intentando procesar la entrada del proyecto de la biblioteca dos veces. Pero no estaba seguro de qué opciones debo utilizar para solucionar este problema.
Cualquier sugerencia / direcciones son muy apreciados.
Actualización 1: Al eliminar el -injars bin/classes
pude superar este problema. Mi suposición era que porque proguard proceso tanto proyecto de la biblioteca y el proyecto de la aplicación los archivos .class
del proyecto de la biblioteca se procesó dos veces. Una vez en la carpeta bin/classes
del proyecto de la biblioteca y otra vez en la carpeta bin/classes
del proyecto de la aplicación.
- ¿Cómo funciona Proguard en Intellij Idea?
- Ocultar cadenas en código ofuscado
- ¿Cómo usar -dontwarn en ProGuard?
- Dagger no puede crear el gráfico del objeto aunque puede producir el archivo del punto
- NoSuchMethodError para VideoView.setOnPreparedListener ()
- Cómo corregir la advertencia proguard 'no se puede encontrar el método de referencia' para los métodos existentes 'clonar' y 'finalizar' de la clase java.lang.Object
- Traducción no captada SimException: dx.rop.cst.CstInterfaceMethodRef no se puede convertir en com.android.dx.rop.cst.CstMethodRef (Proguard)
- La ejecución falló para la tarea ': app: transformClassesAndResourcesWithProguardForRelease
La actualización 1 de la pregunta ha resuelto mi problema y ahora puedo ejecutar mi aplicación.
Esta respuesta es sólo para marcar la pregunta como contestada que puedo hacer después de dos días.
Si obtiene una entrada zip duplicada, significa lo que dice, abra el frasco y verifique si hay duplicados.
Por ejemplo compruebe que su build.xml no contiene nada como
<zipfileset src="${file.reference.joda-time-2.2.jar}" includes="**/*.class"/> <zipfileset src="${file.reference.joda-time-2.2.jar}" includes="**/*"/>
¡Eso incluiría los archivos .class dos veces!
- ¿Cómo agregar una página al principio de ViewPager?
- Android Wikipedia La búsqueda de artículos no aparece correctamente en mi webview?