作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
每当我尝试登录以启动 HomeActivity 时,即使我仔细检查了用户中的 Getters 和 Setters,我也会收到此错误。我认为这可能与下面提到的这段代码有关。它表明.getNumber可能会产生NullPointerException。
if(usersData.getNumber().equals(number)){
这是我的 LoginActivity 的 fragment
if(dataSnapshot.child(parentDbName).child(number).exists())
{
Users usersData = dataSnapshot.child(parentDbName)
.child(number).getValue(Users.class);
if(usersData.getNumber().equals(number))
{
if(usersData.getPw().equals(pw))
{
Toast.makeText(Login.this, "Logged In Successfuly!", Toast.LENGTH_SHORT).show();
prog1.dismiss();
每次我尝试使用 Firebase 中存储的现有帐户登录时,都会显示
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
这是我在 Users.java 中生成的
package com.robihidquicaygabinvalencia.ecommerce.shopmore.Model;
public class Users
{
private String name, number, pw;
public Users()
{
}
public Users(String name, String number, String pw) {
this.name = name;
this.number = number;
this.pw = pw;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
}
这是我在 Logcat 中得到的内容。
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at com.robihidquicaygabinvalencia.ecommerce.shopmore.Login$2.onDataChange(Login.java:83)
at com.google.firebase.database.Query$1.onDataChange(com.google.firebase:firebase-database@@19.1.0:179)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@19.1.0:75)
at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@19.1.0:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@19.1.0:55)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
最佳答案
你是对的。 getNumber()
返回 null。这可能意味着数据库中您要转换为 Users 对象的位置没有值,但由于您没有在您正在读取的位置显示确切的数据,因此无法确定。无论如何,您应该在对结果调用 toString()
之前检查这一点。
关于java - if(usersData.getNumber().equals(number)){ NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58350903/
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 3 年前。 每当我尝试登录以启动 HomeA
我是一名优秀的程序员,十分优秀!