首页 > 解决方案 > 注销时我的应用程序崩溃了?在 Logcat 它显示 NullPointerException,空对象引用

问题描述

这是喜欢和计算照片喜欢的类文件代码。我收到空指针异常

    //likes counter

    firebaseFirestore.collection("Posts/" + blogPostId + "/Likes").addSnapshotListener(new EventListener<QuerySnapshot>() {
        @Override
        public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e) {

            if (!documentSnapshots.isEmpty()){

                int count = documentSnapshots.size();
                holder.updateLikesCount(count);

            }else{

                holder.updateLikesCount(0);

            }

        }
    });

这是 Logcat 详细信息:

 Process: com.example.suraj.photoblog, PID: 24823
    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.google.firebase.firestore.QuerySnapshot.isEmpty()' on a null object reference
        at com.example.suraj.photoblog.BlogRecyclerAdapter$1.onEvent(BlogRecyclerAdapter.java:107)
        at com.example.suraj.photoblog.BlogRecyclerAdapter$1.onEvent(BlogRecyclerAdapter.java:103)
        at com.google.firebase.firestore.zzi.onEvent(Unknown Source)
        at com.google.android.gms.internal.zzevc.zza(Unknown Source)
        at com.google.android.gms.internal.zzevd.run(Unknown Source)
        at android.os.Handler.handleCallback(Handler.java:742)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:157)
        at android.app.ActivityThread.main(ActivityThread.java:5601)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:774)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:652)

标签: androidfirebasefirebase-realtime-databasenullpointerexceptiongoogle-cloud-firestore

解决方案


在这一行if (!documentSnapshots.isEmpty()){,您收到错误消息,您应该检查该引用是否为空。

所以你的代码应该是:

if ( documentSnapshots != null && !documentSnapshots.isEmpty()){

推荐阅读