android问题集锦之十二

最后更新于:2022-04-01 06:38:18

## android.os.BadParcelableException: ClassNotFoundException when unmarshalling 在上篇文[Activity间传类对象数据](http://blog.csdn.net/lincyang/article/details/7080676)中的person类中加入一个List字段的话,如下 ~~~ package com.linc.meta;          import android.os.Parcel;     import android.os.Parcelable;          public class Person implements Parcelable {         private String Name = null;         private String Gender = null;         private int HP = 0;         private String Summary = null;         private String Skill = null;         private List skillList = new ArrayList();                public Person(String name,String gender,int HP,String summary,String skill)         {             this.Name = name;             this.Gender = gender;             this.Summary = summary;             this.HP = HP;             this.Skill = skill;         }                  public String getName() {             return Name;         }              public void setName(String name) {             Name = name;         }              public String getGender() {             return Gender;         }              public void setGender(String gender) {             Gender = gender;         }              public int getHP() {             return HP;         }              public void setHP(int hP) {             HP = hP;         }              public String getSummary() {             return Summary;         }              public void setSummary(String summary) {             Summary = summary;         }                                public String getSkill() {             return Skill;         }              public void setSkill(String skill) {             Skill = skill;         }         //Describe the kinds of special objects contained in this Parcelable's marshalled representation.         //CONTENTS_FILE_DESCRIPTOR         @Override         public int describeContents() {             // TODO Auto-generated method stub             return 0;         }                  //该方法将类的数据写入外部提供的Parcel中         @Override         public void writeToParcel(Parcel dest, int flags) {             dest.writeString(Name);             dest.writeString(Gender);             dest.writeString(Summary);             dest.writeInt(HP);             dest.writeString(Skill);         }                  public static final Parcelable.Creator CREATOR = new Creator()         {                  @Override             public Person createFromParcel(Parcel source) {                 return new Person(source);             }                  @Override             public Person[] newArray(int size) {                 return new Person[size];             }                      };                  private Person(Parcel dest)         {             this.Name = dest.readString();             this.Gender = dest.readString();             this.Summary = dest.readString();             this.HP = dest.readInt();             this.Skill = dest.readString();             this.skillList = dest.readArrayList(String.class.getClassLoader());//class loader 必须要指明       }                  }     ~~~ List中是什么类型就要把类型的class loader引入,否则就会报上述错误。
';