그래서 여러 가지 게시물을 확인한 결과이 문제에 대한 해결책을 찾을 수 없습니다. 아마 난 그냥 알아 차리지 아니에요 뭔가 작은, 그러나 나는 문제 : 내 라이브러리 프로젝트 중 하나Android : Parcelable ClassNotFound 비 정렬 충돌
모델 객체에 눈의 세트를 추가로 얻을 거라고 생각 :의
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);
}
}
로그 캣 출력 :
나는이 문제를 해결하기 위해 노력했습니다 무엇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 라인을 사용하여 생성자의 모든 라인을 제거하여 적어도 멈추었는지 일시적으로 중단되는지 확인하십시오 (그렇지 않습니다)
제안 사항 ns는 정말로 감사 할 것입니다.
당신이 readArrayList에 readTypeList (_, _)에서 변경 해봤 (Venue.class.getClassLoader()), 및 변경 writeArrayList에 writeTypedList (_) (_)? 잘못된 클래스 로더가 사용 중이기 때문에 "형식화 된"목록 API를 사용하여 많은 문제를 보았습니다. – bstar55
감사합니다. 나는 그것을 시도했지만 여전히 문제가있다. 내가 그것을 작동시킬 수없는지를보기 위해 계속 놀고있다. 경로 구성 내용을 살펴보고이 게시물의 다른 대답을 이해할 수 있는지 확인하십시오 :) –