所以我已经检查了很多不同的帖子,但我仍然没有找到解决这个问题的方法。这可能是我没有注意到的一些小问题,但我想我会在这个问题上得到更多的关注:)
我的某个库项目中的模型对象:
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];
}
};
}方法导致我的Android项目崩溃。如果我注释掉outState.putParcelable,它将停止崩溃:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if( mVenue != null ) {
outState.putParcelable( EXTRA_VENUE, mVenue );
}
}Logcat输出:
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 .... 我尝试解决这个问题的方法:
使用parcel.readList而不是readTypedList,并删除包含parcel和writeToParcel行的构造函数中的所有行,以查看是否至少停止了暂时崩溃(不会)
如有任何建议,我们将不胜感激。
发布于 2014-07-01 06:35:55
感谢大家的投入。我发现了问题所在--我们使用的MapFragment并不喜欢我们的场所可打包。在这里找到答案:
发布于 2014-07-01 06:07:42
这种错误通常是由路径配置上的一些错误引起的。检查您的配置路径是否正确,如果您有deploy configuration,请确保将课堂场所配置为要部署。
https://stackoverflow.com/questions/24499338
复制相似问题