Java Android:将值从snapshop检索到textview时出现Null异常错误

Java Android:将值从snapshop检索到textview时出现Null异常错误,java,android,firebase,Java,Android,Firebase,我正在创建一个反馈应用程序,用户从1-5对服务进行评分,我在下一页显示所有用户评分的平均值(截止日期)。平均评分是出来是好的,但我无法从快照中获取的应用程序上的评分到现在为止的用户总数 这是密码- public class Score extends AppCompatActivity { TextView avgScore; TextView totalUsers; double userCount; DatabaseReference dbRef;

我正在创建一个反馈应用程序,用户从1-5对服务进行评分,我在下一页显示所有用户评分的平均值(截止日期)。平均评分是出来是好的,但我无法从快照中获取的应用程序上的评分到现在为止的用户总数

这是密码-

public class Score extends AppCompatActivity {

    TextView avgScore;
    TextView totalUsers;
    double userCount;
    DatabaseReference dbRef;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE); //will hide the title
        getSupportActionBar().hide(); // hide the title bar
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN); //enable full screen
        setContentView(R.layout.score);
        avgScore = findViewById(R.id.textView2);
        dbRef = FirebaseDatabase.getInstance().getReference().child("Users");
        scoreRealTime();
    }

    public void scoreRealTime() {
        dbRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                double total = 0;
                for (DataSnapshot ds : snapshot.getChildren()){
                    UserHelper helper = ds.getValue(UserHelper.class);
                    double values = Double.parseDouble(String.valueOf(helper.rating));
//                  double values = Double.parseDouble(ds.child("rating").getValue().toString());
                    total = total + values;
                    userCount = snapshot.getChildrenCount();
                }
                double average = (double) total / snapshot.getChildrenCount();
                avgScore.setText(String.format("%.2f", average));
                //System.out.println(userCount);
                totalUsers.setText((int) userCount); //error occurs here
            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {
            }
        });
    }
}
这是错误日志-

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.feedback, PID: 26338
    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(int)' on a null object reference
        at com.example.feedback.Score$1.onDataChange(Score.java:60)
        at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)
        at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)
        at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

编辑:另外,如果您能解释为什么这里会发生NullPointerException或者通常会发生NullPointerException,那就太好了。谢谢。

您没有链接totalUsers。你需要做什么

totalUsers = findViewById(R.id.textView);

同样

从代码中,它会导致您没有初始化您的
totalUsers
TextView。之所以出现
NullPointerException
,是因为您全局声明了
totalUsers
,默认情况下将其初始化为null