después de recorrer todo tipo de consultas relacionadas con problemas con ofuscación usando Proguard, he llegado al punto en el que siento que podría ser solo teniendo este particular problema. Por lo tanto, la publicación.Error al trabajar con la biblioteca de Jackson después de la ofuscación usando Proguard
Tengo una aplicación de Android bastante estándar que hace uso de llamadas REST basadas en JSON para intercambiar datos. Hago uso de la biblioteca Jackson
para analizar los datos JSON. Todo había funcionado a la perfección, hasta que decidimos incorporar ofuscación para nuestras versiones de lanzamiento usando Proguard. Después de resolver un mundo de problemas relacionados con la devolución de llamadas, finalmente me encuentro con un problema relacionado con la biblioteca de Jackson.
básicamente, la línea ObjectMapper om = new ObjectMapper()
- simplemente no funciona! Sigo recibiendo el siguiente error en esa línea:
Caused by: java.lang.ExceptionInInitializerError
at org.codehaus.jackson.map.ObjectMapper.<clinit>(Unknown Source)
... 8 more
Caused by: java.lang.NullPointerException
at org.codehaus.jackson.map.introspect.VisibilityChecker$Std.<init>(Unknown Source)
at org.codehaus.jackson.map.introspect.VisibilityChecker$Std.<clinit>(Unknown Source)
... 9 more
Después de leer una serie de otros mensajes relacionados con bibliotecas externas incluyendo, haciendo caso omiso de Proguard las clases de biblioteca Jackson, el encendido y apagado de optimización y reducción de banderas, estoy simplemente despistado en este momento.
Las diversas cosas que he incluido en mi archivo proguard.cfg
por el amor de Jackson -
-dontskipnonpubliclibraryclassmembers
-dontoptimize
-dontshrink
-libraryjars xtraLibs/joda-time-1.6.2.jar;xtraLibs/xml-apis.jar;xtraLibs/jsr311-api-0.8.jar;xtraLibs/stax2-api-3.0.0.jar;xtraLibs/httpmime-4.0.1.jar
entre éstos, he alternar las banderas y dontoptimize
dontshrink
. Sin embargo, el resultado siempre ha sido el mismo.
En todo el tiempo que he dedicado a tratar de resolver este problema, me he sorprendido y asombrado por el tipo de esfuerzo invertido en la biblioteca de Proguard. Es solo que cuando las cosas no funcionan, son un poco ofuscado.
versión Proguard - 4,6
eric lafortune - ¡muchas gracias **! para cualquier otra persona que enfrenta esta situación, busque la solución de toda la cadena de correo en el foro de sourceforge - https://sourceforge.net/projects/proguard/forums/forum/182456/topic/4867948/index/page/1 – anirvan
Con Jackson 2.1.4 los necesitaba además de los atributos anteriores: '-keepattributes Signature',' -keepnames class com.fasterxml.jackson. ** {*; } ',' -dontwarn com.fasterxml.jackson.databind. ** ' – ashughes
Excelentes comentarios. También necesitaba esto: -cuentadores de la clase pública final enum org.codehaus.jackson.annotate.JsonAutoDetect $ Visibilidad { public static final org.codehaus.jackson.annotate.JsonAutoDetect $ Visibility *; } – Sean