Search code examples
androidparceler

Using Parceler with android


I'm trying Parceler library for android. So far I've had only one same error, using plain sample from the documentation.

@Parcel(Parcel.Serialization.BEAN)
public class Example {
  private String name;
  private int age;

  public String getName() { return name; }
  public void setName(String name) { this.name = name; }

  public int getAge() { return age; }
  public void setAge(int age) { this.age = age; }
}

And

Parcelable p = Parcels.wrap(new Example());

Which crashes with

07-30 12:31:46.439: E/AndroidRuntime(4945): FATAL EXCEPTION: main
07-30 12:31:46.439: E/AndroidRuntime(4945): Process: com.sample.app.android.debug, PID: 4945
07-30 12:31:46.439: E/AndroidRuntime(4945):  org.parceler.ParcelerRuntimeException: Unable to find generated Parcelable  class for com.sample.app.android.entity.Example, verify that  your class is configured properly and that the Parcelable class  com.sample.app.android.entity.Example$$Parcelable is generated  by Parceler.
07-30 12:31:46.439: E/AndroidRuntime(4945):     at  org.parceler.Parcels$ParcelCodeRepository.get(Parcels.java:201)
07-30 12:31:46.439: E/AndroidRuntime(4945):     at org.parceler.Parcels.wrap(Parcels.java:85)
07-30 12:31:46.439: E/AndroidRuntime(4945):     at org.parceler.Parcels.wrap(Parcels.java:69)

What do I miss?


Solution

  • It sounds like the annotation processor isn't running or is misconfigured. I'd recommend using the annotationProcessor scope if you're using a Gradle build along with separate scopes for the processor and api libraries:

    compile 'org.parceler:parceler-api:1.1.9'
    annotationProcessor 'org.parceler:parceler:1.1.9'
    

    See the Getting Parceler section of the website for the latest.