title: ProGuard - org.codehaus.jackson.map.JsonMappingException: No suitable constructor found for type
body: <p>I have an Android-based application which is connecting to the Google App Engine using Rest services, the app works perfectly until it is obfuscated through ProGuard prior to release.</p>
  
  <p>The error reported in LogCat when running the obfuscated app is:</p>
  
  <pre><code>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?)
  </code></pre>
  
  <p>I have the following in my proguard-project.txt file:</p>
  
  <pre><code>-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.**
  </code></pre>
  
  <p>And my class the error refers to looks like:</p>
  
  <pre><code>public class WasteCollectionAreasContainer {
  
   public List&lt;WasteCollectionAreas&gt; wasteCollectionAreasList;
  
   public List&lt;WasteCollectionAreas&gt; getWasteCollectionAreasList() {
       return wasteCollectionAreasList;
   }
  
   public void setWasteCollectionAreasist(List&lt;WasteCollectionAreas&gt; wasteCollectionAreasList) {
       this.wasteCollectionAreasList = wasteCollectionAreasList;
   }
  
   public WasteCollectionAreasContainer() {
       wasteCollectionAreasList = new ArrayList&lt;WasteCollectionAreas&gt;();
   }
  
   @JsonCreator
   public WasteCollectionAreasContainer(List&lt;WasteCollectionAreas&gt; wasteCollectionAreasList) {
       this.wasteCollectionAreasList = wasteCollectionAreasList;
   }
  }
  </code></pre>
  
  <p>To reiterate prior to obfuscation through ProGuard the app works perfectly.<br>
  Can anyone help me solve this problem?</p>