So I've checked over a lot of different posts and I'm still not finding a solution for this problem. It's probably something small that I'm just not noticing, but I figured I'd get additional sets of eyes on the issue :)
Model object in one of my library projects:
public class Venue implements Parcelable {
private String id;
private String city;
private String state;
private String name;
private String category;
private String subcategory;
private double latitude;
private double longitude;
private List<Venue> related;
public Venue() {
}
public Venue( Parcel parcel ) {
id = parcel.readString();
city = parcel.readString();
state = parcel.readString();
name = parcel.readString();
category = parcel.readString();
subcategory = parcel.readString();
latitude = parcel.readDouble();
longitude = parcel.readDouble();
related = new ArrayList<Venue>();
parcel.readTypedList( related, Venue.CREATOR );
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getSubcategory() {
return subcategory;
}
public void setSubcategory(String subcategory) {
this.subcategory = subcategory;
}
public double getLatitude() {
return latitude;
}
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
public List<Venue> getRelated() {
return related;
}
public void setRelated(List<Venue> related) {
this.related = related;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString( id );
dest.writeString( city );
dest.writeString( state );
dest.writeString( name );
dest.writeString( category );
dest.writeString( subcategory );
dest.writeDouble( latitude );
dest.writeDouble( longitude );
dest.writeTypedList( related );
}
public static final Creator<Venue> CREATOR = new Creator<Venue>() {
@Override
public Venue createFromParcel(Parcel source) {
return new Venue( source );
}
@Override
public Venue[] newArray(int size) {
return new Venue[size];
}
};
}
Method that's causing the crash in my Android project. If I comment out outState.putParcelable, it stops crashing:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if( mVenue != null ) {
outState.putParcelable( EXTRA_VENUE, mVenue );
}
}
Logcat output:
E/Parcel﹕ Class not found when unmarshalling: com.companyname.android.model.schedule.Venue
java.lang.ClassNotFoundException: com.companyname.android.model.schedule.Venue
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:251)
at android.os.Parcel.readParcelableCreator(Parcel.java:2133)
at android.os.Parcel.readParcelable(Parcel.java:2097)
at android.os.Parcel.readValue(Parcel.java:2013)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2314)
at android.os.Bundle.unparcel(Bundle.java:249)
at android.os.Bundle.getBundle(Bundle.java:1184)
at gui.a(SourceFile:74)
at ouj.a(Unknown Source)
at grv.onTransact(SourceFile:89)
at android.os.Binder.transact(Binder.java:361)
at com.google.android.gms.maps.internal.IMapFragmentDelegate$a$a.onCreate(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment$a.onCreate(Unknown Source)
at com.google.android.gms.dynamic.a$3.b(Unknown Source)
at com.google.android.gms.dynamic.a$1.a(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment$b.ip(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment$b.a(Unknown Source)
at com.google.android.gms.dynamic.a.a(Unknown Source)
at com.google.android.gms.dynamic.a.onCreate(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment.onCreate(Unknown Source)
at ....
What I've tried to fix the issue:
Using parcel.readList rather than readTypedList and removing all lines in the constructor with the parcel and the writeToParcel line to see if that at least stopped crashes temporarily (it doesn't)
Any suggestions would be really appreciated.