我一直收到此错误 “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() {} 


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!