致命异常:java.lang.RuntimeException在com.suman_miazi.e_exam.utils.f类上找不到要序列化的属性
这种迷恋让我发疯。我正在使用firebase firestore存储用户信息。下面给出了我的用户模型类致命异常:java.lang.RuntimeException在com.suman_miazi.e_exam.utils.f类上找不到要序列化的属性,java,android,firebase,google-cloud-firestore,pojo,Java,Android,Firebase,Google Cloud Firestore,Pojo,这种迷恋让我发疯。我正在使用firebase firestore存储用户信息。下面给出了我的用户模型类 public class User_data implements Parcelable { private String name; private String institute; private String subject; private String previous_score; private String rank; priv
public class User_data implements Parcelable {
private String name;
private String institute;
private String subject;
private String previous_score;
private String rank;
private int points;
private ArrayList enrolled = new ArrayList();
private String profileImage;
private String token;
public User_data(){ }
public static final Creator<User_data> CREATOR = new Creator<User_data>() {
@Override
public User_data createFromParcel(Parcel in) {
return new User_data(in);
}
@Override
public User_data[] newArray(int size) {
return new User_data[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(this.name);
parcel.writeString(this.institute);
parcel.writeString(this.subject);
parcel.writeString(this.previous_score);
parcel.writeString(this.rank);
parcel.writeInt(this.points);
parcel.writeList(this.enrolled);
parcel.writeString(this.profileImage);
}
public User_data(Parcel parcel) {
this.name = parcel.readString();
this.institute = parcel.readString();
this.subject = parcel.readString();
this.previous_score = parcel.readString();
this.rank = parcel.readString();
this.points = parcel.readInt();
this.enrolled = parcel.readArrayList(null);
this.profileImage = parcel.readString();
}
// all getter and setter is also implemented here
}
所有代码在调试模式下都工作正常。但发布中的应用程序正在崩溃
请任何人给我一个解决方案。我尝试了很多方法,但都无法解决这个问题我通过避免使用下面的方法强制转换并使用公共setter函数初始化对象来解决这个问题 旧方法:
User_data user_data = documentSnapshot.toObject(User_data.class);
user_data.setName(documentSnapshot.getString("name"));
user_data.setInstitute(documentSnapshot.getString("institute"));
user_data.setSubject(documentSnapshot.getString("subject"));
user_data.setPoints(Objects.requireNonNull(documentSnapshot.getLong("poins")).intValue());
user_data.setToken(documentSnapshot.getString("token"));
user_data.setProfileImage(documentSnapshot.getString("profileImage"));
新方法:
User_data user_data = documentSnapshot.toObject(User_data.class);
user_data.setName(documentSnapshot.getString("name"));
user_data.setInstitute(documentSnapshot.getString("institute"));
user_data.setSubject(documentSnapshot.getString("subject"));
user_data.setPoints(Objects.requireNonNull(documentSnapshot.getLong("poins")).intValue());
user_data.setToken(documentSnapshot.getString("token"));
user_data.setProfileImage(documentSnapshot.getString("profileImage"));
尝试将
points
变量更改为Integer
类型,而不是int
,并确保getter和setter是public
。让我知道这是否解决了您的问题。请编辑您的问题并将您的数据库结构添加为屏幕截图。请回复@AlexMamo@SumonMiazi我提供的评论是否解决了您面临的问题?@ralemos我也尝试使用Integer,但问题没有解决。我不知道我哪里做错了。但现在我已经通过使用setter方法从firestore文档初始化对象来解决了这个问题。