Ho un'applicazione basata su Android che si collega a Google App Engine utilizzando i servizi di Rest, l'app funziona perfettamente finché non viene offuscata tramite ProGuard prima del rilascio.ProGuard - org.codehaus.jackson.map.JsonMappingException: Nessun costruttore adatto trovato per il tipo
L'errore riportato nel LogCat quando si esegue l'applicazione offuscato è:
Unable to convert a [application/json,UTF-8] representation into an object of
class com.enterprisemk.android.bcw.bincollection.WasteCollectionAreasContainer
org.codehaus.jackson.map.JsonMappingException: No suitable constructor found
for type [simple type, class
com.enterprisemk.android.bcw.bincollection.WasteCollectionAreasContainer]:
can not instantiate from JSON object (need to add/enable type information?)
Ho il seguente nel mio Proguard-project.txt di file:
-keepattributes *Annotation*,EnclosingMethod
-keep public class org.w3c.** {public private protected *;}
-dontwarn org.w3c.**
-keep public class org.joda.time.** {public private protected *;}
-dontwarn org.joda.time.**
-keep public class org.restlet.** { *; }
-dontwarn org.restlet.**
-keep public class org.codehaus.** { *; }
-dontwarn org.codehaus.**
-keepattributes Signature
-keepnames class com.fasterxml.jackson.** { *; }
-dontwarn com.fasterxml.jackson.databind.**
E la mia classe l'errore si riferisce a assomiglia a:
Per reiterare prima di offuscare tramite ProGuard, l'app funziona perfettamente.
Qualcuno può aiutarmi a risolvere questo problema?
po 'di tempo progaurd rimuove alcune classi dal percorso di generazione di progetti appositamente biblioteca. – Ankit
Suona come Proguard può aver rimosso il default, costruttore senza parametri per 'WasteCollectionAreasContainer'. Anche questa classe ha un costruttore sovraccarico? Potrebbe essere Proguard è spogliando il costruttore di default * perché * v'è un sovraccarico * e * si pensa che il costruttore di default non viene utilizzato ovunque - che può accadere a causa Proguard non può rilevare che Jackson in realtà usa/richiede un costruttori di default per POJO in fase di esecuzione. –
MH - questo mi partì nella giusta direzione per fissare il problema - grazie –