Firestore:在类上找不到要序列化的属性
Posted
技术标签:
【中文标题】Firestore:在类上找不到要序列化的属性【英文标题】:Firestore : No properties to serialize found on class 【发布时间】:2019-05-17 00:06:13 【问题描述】:注意:
请不要将此问题标记为重复,因为我已经回答了类似的问题及其答案。
错误:
java.lang.RuntimeException:在类 com.appz.abhi.shudhbatter.b.c 上找不到要序列化的属性 在 com.google.firebase.firestore.g.l$a.(未知来源) 在 com.google.firebase.firestore.g.l.a(未知来源) 在 com.google.firebase.firestore.g.l.b(未知来源) 在 com.google.firebase.firestore.g.l.b(未知来源) 在 com.google.firebase.firestore.g.l.a(未知来源) 在 com.google.firebase.firestore.ah.b(未知来源) 在 com.google.firebase.firestore.b.a(未知来源) 在 com.appz.abhi.shudhbatter.view.onboarding.a.a.a.a(来源不明) 在 com.appz.abhi.shudhbatter.view.onboarding.a.a.a.lambda $56b6vrtW7GJri_HgEDiOk1aRbrY(未知 来源) 在 com.appz.abhi.shudhbatter.view.onboarding.a.a.-$$Lambda$a$56b6vrtW7GJri_HgEDiOk1aRbrY.onClick(lambda) 在 android.view.View.performClick(View.java:5647) 在 android.view.View$PerformClick.run(View.java:22465) 在 android.os.Handler.handleCallback(Handler.java:754) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:163) 在 android.app.ActivityThread.main(ActivityThread.java:6238) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
类似问题:
-
Firebase No properties to serialize found on class
No properties to serialize found on class com.contentful.vault.Asset
Firebase No properties to serialize found with object in release mode
Firebase - No properties to serialize found on class
proguard-rules.pro:
-assumenosideeffects class android.util.Log
public static *** d(...);
# Add this global rule
-keepattributes Signature
-keep class android.support.v7.widget.RecyclerView *;
# Keep custom model classes
-keepclassmembers class com.mypackage.model.** *;
-keep class com.mypackage.model.** *;
-keep class com.mypackage.util.** *;
使用映射文件,我发现错误是由以下模型类引起的:
User.java:
package com.mypackage.model;
import java.io.Serializable;
public class User implements Serializable
// Data
private Long phone;
private String uid, name, mail, apartmentName, doorNo;
private UserType userType;
public User()
userType = UserType.USER;
public Long getPhone()
return phone;
public void setPhone(Long phone)
this.phone = phone;
public String getUid()
return uid;
public void setUid(String uid)
this.uid = uid;
public String getName()
return name;
public void setName(String name)
this.name = name;
public String getMail()
return mail;
public void setMail(String mail)
this.mail = mail;
public String getApartmentName()
return apartmentName;
public void setApartmentName(String apartmentName)
this.apartmentName = apartmentName;
public String getDoorNo()
return doorNo;
public void setDoorNo(String doorNo)
this.doorNo = doorNo;
public UserType getUserType()
return userType;
public void setUserType(UserType userType)
this.userType = userType;
UserType.java:
package com.mypackage.model;
public enum UserType
USER, ADMIN, DELIVERY
【问题讨论】:
【参考方案1】:执行以下操作后,上述错误得到解决:
-
清理并重建项目。
删除所有 proguard 规则。
在每个模型类的开头添加
@Keep
。
【讨论】:
以上是关于Firestore:在类上找不到要序列化的属性的主要内容,如果未能解决你的问题,请参考以下文章
使用 node.js 标准环境在 AppEngine 上找不到模块 @google-cloud/firestore
I/flutter (22027):MissingPluginException(在通道 plugins.flutter.io/cloud_firestore 上找不到方法 DocumentRefer