我一直收到此错误 “users 没有定义无参构造函数。如果您使用 ProGuard,请确保这些构造函数没有被删除。”尝试了一切,不知道为什么会发生。
public void retrievingUserInfo(){
databaseUserID.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//clearing the previous userinfo list
Users_Info.clear();
//iterating through all the nodes
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
//getting userinfo
users userinfo = postSnapshot.getValue(users.class);
//adding userinfo to the list
Users_Info.add(userinfo);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
用户.class
@Keep
public class users {
public String user_id, address, contact, name;
public users(String user_id, String address, String contact,String name)
{}
}
请您参考如下方法:
JavaBeans require a no-argument constructor出席。
当 Java 类根本没有构造函数时,编译器会自动为其添加一个默认的无参数构造函数。当您在类中定义任何构造函数时,默认的无参数构造函数就会消失。
在您的代码中,您的 users
类定义了这样一个包含参数的构造函数:
public users(String user_id, String address, String contact,String name)
{}
只要该构造函数存在,并且您没有定义无参数构造函数,该类就不会存在。
要解决此问题,您需要从类中删除该构造函数,或者手动向其添加无参数构造函数:
public users() {}