【问题标题】:Android Studio : Attempt to invoke virtual method 'Post.getPostimage()' on a null object referenceAndroid Studio:尝试在空对象引用上调用虚拟方法“Post.getPostimage()”
【发布时间】:2021-12-29 06:19:53
【问题描述】:
 private void getPostImage(final ImageView imageView, String postid){
        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("posts").child(postid);
        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                Post post = dataSnapshot.getValue(Post.class);
              Glide.with(mContext.getApplicationContext()).load(post.getPostimage()).into(imageView);
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
    }

我收到指向此行的错误:

Glide.with(mContext.getApplicationContext()).load(post.getPostimage()).into(imageView);

这是错误:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.taimoorsikander.myapplication, PID: 20194
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.taimoorsikander.myapplication.Model.Post.getPostimage()' on a null object reference
        at com.taimoorsikander.myapplication.Adapter.NotificationAdapter$3.onDataChange(NotificationAdapter.java:177)
        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:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:246)
        at android.app.ActivityThread.main(ActivityThread.java:8633)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

我尝试调试应用程序以定位空值,但一切似乎都很好。此行中没有空值。我该如何解决这个问题?

【问题讨论】:

  • post 应该为空。

标签: android


【解决方案1】:

您的 NotificationAdapter 中 Post 的值为 null

请更改

Glide.with(mContext.getApplicationContext()).load(post.getPostimage()).into(imageView);

if(post != null) {
    Glide.with(mContext.getApplicationContext()).load(post.getPostimage()).into(imageView);   
}

【讨论】:

  • 很好用。谢谢
猜你喜欢
  • 2018-12-08
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-02
相关资源
最近更新 更多