Android 用户不定义无参数构造函数
我一直犯这个错误 “用户不定义无参数构造函数。如果您使用的是ProGuard,请确保这些构造函数没有被剥离。”尝试了所有方法,不知道为什么会发生这种情况Android 用户不定义无参数构造函数,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我一直犯这个错误 “用户不定义无参数构造函数。如果您使用的是ProGuard,请确保这些构造函数没有被剥离。”尝试了所有方法,不知道为什么会发生这种情况 public void retrievingUserInfo(){ databaseUserID.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSn
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) {
}
});
}
用户类
@Keep
public class users {
public String user_id, address, contact, name;
public users(String user_id, String address, String contact,String name)
{}
}
JavaBeans将出现
当Java类根本没有构造函数时,编译器会自动向其添加一个默认的无参数构造函数。在类中定义任何构造函数时,默认的no-arg构造函数就会消失
在您的代码中,您的users
类定义了这样一个包含参数的构造函数:
public users(String user_id, String address, String contact,String name)
{}
只要该构造函数存在,并且您没有定义无参数构造函数,那么该类就不会有无参数构造函数
要解决此问题,您需要从类中删除该构造函数,或手动向其添加无参数构造函数:
public users() {}
哇,谢谢!谢谢你!但是通过这样做,我只检索用户ID,而不检索用户ID下的所有数据,例如名称、地址等。您的类成员名称需要与数据库中的子类名称匹配。或者您需要以JavaBeans的方式提供匹配的getter和setter。{“用户”:{“73fsRy0znKRa5zFEl5XsJM4Q7Zf1”:{“地址”:“Lokawi”,“联系人”:“999”,“姓名”:“Logiut”},“QnHe3Y7LHQXnqrUT85v18PAKhbm1”:{“地址”:“Papar”,“contact”:“852525,,“name”:“Bantaton”},}这就是json数据的样子,我添加了另一个public users(),但这次是构造函数,字符串如下:public class users{private String user_id、address、contact、name;仍然只能获取userID。您可能想问第二个格式良好的问题,解释您遇到的新问题。