Этот вопрос закрыт для ответов, так как повторяет вопрос Ошибка приложения вылетает как исправить?
@EgorItChainik

NullpointerExpectuon как исправить?

Вот ошибка
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String door.one.marketplace.Model.Users.getPhone()' on a null object reference
at door.one.marketplace.SettingActivity.userInfodisplay(SettingActivity.java:99)
at door.one.marketplace.SettingActivity.onCreate(SettingActivity.java:61)
Проблемный метод
private void userInfodisplay(EditText edit_phone_set, EditText edit_adress_set, EditText edit_name, CircleImageView izmenit_photo) {
        String phone=Prevalent.currentOnlineUser.getPhone();
        DatabaseReference UserRef=FirebaseDatabase.getInstance().getReference().child("Users").child(phone);
        UserRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                if (snapshot.exists()){
                    if (snapshot.child("image").exists()){
                        String image=snapshot.child("image").getValue().toString();
                        String name=snapshot.child("Username").getValue().toString();
                        String adress=snapshot.child("Adress").getValue().toString();
                        String phonenumber=snapshot.child("Pnomenumder").getValue().toString();
                        Picasso.get().load(image).into(izmenit_photo);
                        edit_phone_set.setText(phonenumber);
                        edit_adress_set.setText(adress);
                        edit_name.setText(name);
                    }
                    if (snapshot.child("address").exists()){
                        String name=snapshot.child("Username").getValue().toString();
                        String adress=snapshot.child("Adress").getValue().toString();
                        String phonenumber=snapshot.child("Pnomenumder").getValue().toString();
                        edit_phone_set.setText(phonenumber);
                        edit_adress_set.setText(adress);
                        edit_name.setText(name);
                    }
                }
            }
            @Override
            public void onCancelled(@NonNull DatabaseError error) {
            }
        });
    }

Проблемная строчка в методе сверху
String phone=Prevalent.currentOnlineUser.getPhone();

Так же проблемный начало этого метода
userInfodisplay(edit_phone_set ,edit_adress_set, edit_name,izmenit_photo);

Класс Prevalent (где инициализацирован currentOnlineUser)
public class Prevalent {
    public static Users currentOnlineUser;
   public static final String UserPhoneKey="UserPhone";
    public static final String UserPasswordKey="UserPassword";
}

Так же класс Users (где инициализацированы стринги имени,фото, телефон и пароль)
public class Users {
    private  String name,phone,password,image;
    public Users(){
    }
    public Users(String name, String phone, String password,String image) {
        this.name = name;
        this.phone = phone;
        this.password = password;
        this.image=image;
    }
    public String getImage() {
        return image;
    }
    public void setImage(String image) {
        this.image = image;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}


Как это исправить? И почему оно нулевое если все инициализировано?
  • Вопрос задан
  • 63 просмотра
Ответы на вопрос 1
EreminD
@EreminD
Кое-что умею
Класс Prevalent (где инициализацирован currentOnlineUser)

нет, не инициализирован
он тут объявлен
а какое значение вы назначили в это поле, пока не видно
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы