j'ai continué à recevoir cette erreur "les utilisateurs ne définissent pas de constructeur sans argument. Si vous utilisez ProGuard, assurez-vous que ces constructeurs ne sont pas supprimés." J'ai tout essayé, je ne sais pas pourquoi cela se produit.
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) {
}
});
}
users.class
@Keep
public class users {
public String user_id, address, contact, name;
public users(String user_id, String address, String contact,String name)
{}
}
JavaBeans nécessite un constructeur sans argument pour être présent.
Lorsqu'une classe Java n'a pas de constructeurs du tout, un constructeur no-arg par défaut lui est automatiquement ajouté par le compilateur. Dès que vous définissez un constructeur dans la classe, le no-arg par défaut constructeur s'en va.
Dans votre code, votre classe users
définit un tel constructeur qui contient des arguments:
public users(String user_id, String address, String contact,String name)
{}
Tant que ce constructeur est présent, et que vous ne définissez pas de constructeur sans argument, cette classe n'en aura pas.
Pour résoudre ce problème, vous devez soit supprimer ce constructeur de la classe, soit lui ajouter manuellement un constructeur sans argument:
public users() {}