Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在我的类上找不到()的setter/字段_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java 在我的类上找不到()的setter/字段

Java 在我的类上找不到()的setter/字段,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我试图为我的应用程序创建一个登录屏幕,但当我输入正确的Id和密码时,我的应用程序一直停止。此外,当我调试代码时,错误消息如下: W/ClassMapper: No setter/field for User found on class com.example.(Projectname).User No setter/field for BookReport found on class com.example.(Projectname).User E/AndroidRuntime: F

我试图为我的应用程序创建一个登录屏幕,但当我输入正确的Id和密码时,我的应用程序一直停止。此外,当我调试代码时,错误消息如下:

 W/ClassMapper: No setter/field for User found on class com.example.(Projectname).User
 No setter/field for BookReport found on class com.example.(Projectname).User

 E/AndroidRuntime: FATAL EXCEPTION: main
 Process: com.example.(Projectname), PID: 3339
 java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
    at com.example.(Projectname).LoginScreen$1$1.onDataChange(LoginScreen.java:79)

出来了。为什么会发生这种情况?

似乎
com.example.hellobook.User
类没有为其字段定义setter。尝试为所有字段定义一个setter,以便语句
foundUser=dataSnapshot.getValue(User.class)可以创建正确的
用户
对象

e、 g


似乎
com.example.hellobook.User
类没有为其字段定义setter。尝试为所有字段定义一个setter,以便语句
foundUser=dataSnapshot.getValue(User.class)可以创建正确的
用户
对象

e、 g


先生,您的错误是这一行
if(userId.equals(id))
因为您在for循环之外的foundUser对象中设置了dataSnapShot的值

    ref.addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        for (DataSnapshot ds : dataSnapshot.getChildren()) {
                            foundUser = dataSnapshot.getValue(User.class);
                            userId = foundUser.getId();
                            userPw = foundUser.getPw();
                            if (userId.equals(id)) {
                                if (userPw.equals(psw)) {
                                    startActivity(new Intent(LoginScreen.this, LandingScreen.class));
                                }

                            }
                            else {
                                Toast.makeText(LoginScreen.this, "Wrong ID or password. Try again", Toast.LENGTH_SHORT).show();
                            }

                        }
                    }
                    @Override
                    public void onCancelled (DatabaseError error) {
                        @NonNull DatabaseError databaseError;                        }
                });
            };

先生,您的错误是这一行
if(userId.equals(id))
因为您在for循环之外的foundUser对象中设置了dataSnapShot的值

    ref.addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        for (DataSnapshot ds : dataSnapshot.getChildren()) {
                            foundUser = dataSnapshot.getValue(User.class);
                            userId = foundUser.getId();
                            userPw = foundUser.getPw();
                            if (userId.equals(id)) {
                                if (userPw.equals(psw)) {
                                    startActivity(new Intent(LoginScreen.this, LandingScreen.class));
                                }

                            }
                            else {
                                Toast.makeText(LoginScreen.this, "Wrong ID or password. Try again", Toast.LENGTH_SHORT).show();
                            }

                        }
                    }
                    @Override
                    public void onCancelled (DatabaseError error) {
                        @NonNull DatabaseError databaseError;                        }
                });
            };

您能为您的
User
类显示代码吗?显然
userId
userPw
为空,以第79行为准。错误消息的哪一部分让您感到困惑?也许如果您添加空检查,例如,
如果(userId!=null&&userId.equals(id))
,代码不会失败。@ChrisStillwell的副本我在原始版本中添加了它post@Andreas是的,我想这就是问题所在,谢谢!!您能为您的
User
类显示代码吗?显然
userId
userPw
为空,以第79行为准。错误消息的哪一部分让您感到困惑?也许如果您添加空检查,例如,
如果(userId!=null&&userId.equals(id))
,代码不会失败。@ChrisStillwell的副本我在原始版本中添加了它post@Andreas是的,我想这就是问题所在,谢谢!!好吧,除非OP发布了
用户
类,否则什么都不能说。好吧,什么都不能说,除非OP发布了
用户
类。你的答案听起来很合理,我试过了,但我仍然无法解决问题:((它是否显示相同的错误。您是检查用户id的日志值还是调试它。在if检查之前是否为空?您的答案听起来很合理,我尝试了,但仍然无法解决问题:((它是否显示相同的错误。您是检查用户id的日志值还是调试它。在if检查之前是否为空