2012-06-14 17 views
15

estoy usando la biblioteca de Jackson-JSON en un proyecto de Android, y cuando se exporta la aplicación durante el uso Proguard para la ofuscación, consigo los siguientes errores:Problemas con el uso de la biblioteca de Jackson-JSON utilizando Proguard

Proguard returned with error code 1. See console 
Warning: com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry 
Warning: com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry 
Warning: com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry 
Warning: com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry 
Warning: com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry 
You should check if you need to specify additional program jars. 
Warning: there were 5 unresolved references to classes or interfaces. 
You may need to specify additional library jars (using '-libraryjars'). 
java.io.IOException: Please correct the above warnings first. 
at proguard.Initializer.execute(Initializer.java:321) 
at proguard.ProGuard.initialize(ProGuard.java:211) 
at proguard.ProGuard.execute(ProGuard.java:86) 
at proguard.ProGuard.main(ProGuard.java:492) 

He intentado jugar con la configuración del proyecto, agregar "-libraryjars" para incluir otros archivos jar y muchas otras cosas, pero nada me ayudó.

Respuesta

37

bien, he añadido las siguientes cosas que he reunido de varios sitios web:

-libraryjars libs/jackson-annotations-2.0.0.jar 
-libraryjars libs/jackson-core-2.0.0.jar 

-dontskipnonpubliclibraryclassmembers 

-keepattributes *Annotation*,EnclosingMethod 

-keepnames class org.codehaus.jackson.** { *; } 

-dontwarn javax.xml.** 
-dontwarn javax.xml.stream.events.** 
-dontwarn com.fasterxml.jackson.databind.** 

junto con el siguiente código para cada clase que se utiliza para JSON (con conseguir & conjunto), i Creo que se está creando el apk, pero no estoy seguro de si lo que he escrito es suficiente para que funcione bien, y también si no se necesita algo de lo que he escrito:

-keep public class MyClass.** { 
    public void set*(***); 
    public *** get*(); 
} 
+2

nice ... esto está funcionando sin ningún problema. –

+1

Trabajando para mí también, gracias. –

+1

No minimicé los comandos aquí. si alguien puede decirme qué líneas no son necesarias, hágamelo saber. –

Cuestiones relacionadas