2012-02-14 20 views
11

Estoy tratando de utilizar Proguard en una aplicación para Android que utiliza un proyecto biblioteca androide y estoy consiguiendo el error siguiente:Android - Proguard cremallera de duplicado de error

java.io.IOException: Can't write 
    [/private/var/folders/Pg/PgUpPJQ-E5qxL7jX6kpdCE+++TI/-Tmp-/android_3140050575281008652.jar] 
    (Can't read [[email protected]] 
    (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 this junto con unos -libraryjars refiriéndose a rt.jar y algunas otras bibliotecas dependientes.

Supongo que este problema está relacionado con el uso del Proyecto de biblioteca y que proguard intenta procesar la entrada del proyecto de la biblioteca dos veces. Pero no estaba seguro de qué opciones debería usar para solucionar esto.

Cualquier sugerencia/dirección es muy apreciada.

Actualización 1: Al eliminar el -injars bin/classes pude resolver este problema. Supongo que, debido a que proguard procesa tanto el proyecto de la biblioteca como el proyecto de la aplicación, los archivos .class del proyecto de la biblioteca se procesaron 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.

+22

'Al eliminar la -injars bin/classes' - ¿dónde está eso? –

Respuesta

4

La actualización en la pregunta ha resuelto mi problema y ahora puedo ejecutar mi aplicación.

Esta respuesta es solo para marcar la pregunta como respondida, lo que puedo hacer después de dos días.

+4

mi error es un poco diferente, pero no tengo cláusulas "injars". ¡Por favor ayúdame, cansado de esto! Proguard devuelto con el código de error 1. Ver consola Advertencia: no se puede escribir el recurso [META-INF/MANIFEST.MF] (Entrada zip duplicada [android-support-v4.jar: META-INF/MANIFEST.MF]) Advertencia : no se puede escribir el recurso [META-INF/MANIFEST.MF] (entrada zip duplicada [library.jar: META-INF/MANIFEST.MF]) – thecr0w

+0

@ thecr0w, ¿resolvió esto? – l33t

+0

@ l33t, lo siento, ha pasado mucho tiempo y no puedo decirte nada. – thecr0w

1

Si obtiene una entrada zip duplicada, significa lo que dice, abra el contenedor y verifique si hay duplicados.

Por ejemplo comprobar su build.xml no contiene nada parecido

<zipfileset src="${file.reference.joda-time-2.2.jar}" includes="**/*.class"/> 
<zipfileset src="${file.reference.joda-time-2.2.jar}" includes="**/*"/> 

que incluiría los archivos .class dos veces!

Cuestiones relacionadas