Android java.lang.NullPointerException:尝试调用虚拟方法';java.util.ArrayList com.example.priyanka.rent_ol.Firebase.Firebase_helper.retrieve()

Android java.lang.NullPointerException:尝试调用虚拟方法';java.util.ArrayList com.example.priyanka.rent_ol.Firebase.Firebase_helper.retrieve(),android,firebase,arraylist,nullpointerexception,Android,Firebase,Arraylist,Nullpointerexception,我是android编程新手,我正在将firebase数据库中的数据检索到recyclerview中,但我得到了空指针异常。确切错误如下 E/UncaughtException: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.priyanka.rent_ol.Firebase.Firebase_helper.retrieve(java.lang.St

我是android编程新手,我正在将firebase数据库中的数据检索到recyclerview中,但我得到了空指针异常。确切错误如下

E/UncaughtException: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.priyanka.rent_ol.Firebase.Firebase_helper.retrieve(java.lang.String)' on a null object reference
                     at com.example.priyanka.rent_ol.Get.getData(Get.java:39)
                     at com.example.priyanka.rent_ol.AllProducts.onClick(AllProducts.java:43)
                     at android.view.View.performClick(View.java:4757)
                     at android.view.View$PerformClick.run(View.java:19757)
                     at android.os.Handler.handleCallback(Handler.java:739)
                     at android.os.Handler.dispatchMessage(Handler.java:95)
                     at android.os.Looper.loop(Looper.java:135)
                     at android.app.ActivityThread.main(ActivityThread.java:5235)
                     at java.lang.reflect.Method.invoke(Native Method)
                     at java.lang.reflect.Method.invoke(Method.java:372)
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
allproducts类中的Onclick方法如下

public void getData(String category) {
    //SETUP RV
  //  rv= (RecyclerView) findViewById(R.id.recyclerv);
   // rv.setLayoutManager(new LinearLayoutManager(this));
    catS=category;
    adapter = new MyAdapter(this, helper.retrieve(catS));
    rv.setAdapter(adapter);
}
 DatabaseReference AdvertisementRef;
ArrayList<SaveAddInformation>adinfolist=new  ArrayList();
MyAdapter adapter;

public Firebase_helper(DatabaseReference advertisementRef) {
    AdvertisementRef = advertisementRef;
}

//READ DATA

public ArrayList<SaveAddInformation> retrieve(String cat){
    String categoryS;
    categoryS=cat;

    AdvertisementRef.orderByChild("main_category").equalTo(categoryS).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot eventSnapshot : dataSnapshot.getChildren()) {

                SaveAddInformation mModel = eventSnapshot.getValue(SaveAddInformation.class);
                Log.d("DATA" ,""+ mModel);
                adinfolist.add(mModel);
            }
           // adapter.notifyDataSetChanged();
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }

    });

    return adinfolist;

}
@凌驾 公共void onClick(视图){

获取数据的方法如下

public void getData(String category) {
    //SETUP RV
  //  rv= (RecyclerView) findViewById(R.id.recyclerv);
   // rv.setLayoutManager(new LinearLayoutManager(this));
    catS=category;
    adapter = new MyAdapter(this, helper.retrieve(catS));
    rv.setAdapter(adapter);
}
 DatabaseReference AdvertisementRef;
ArrayList<SaveAddInformation>adinfolist=new  ArrayList();
MyAdapter adapter;

public Firebase_helper(DatabaseReference advertisementRef) {
    AdvertisementRef = advertisementRef;
}

//READ DATA

public ArrayList<SaveAddInformation> retrieve(String cat){
    String categoryS;
    categoryS=cat;

    AdvertisementRef.orderByChild("main_category").equalTo(categoryS).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot eventSnapshot : dataSnapshot.getChildren()) {

                SaveAddInformation mModel = eventSnapshot.getValue(SaveAddInformation.class);
                Log.d("DATA" ,""+ mModel);
                adinfolist.add(mModel);
            }
           // adapter.notifyDataSetChanged();
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }

    });

    return adinfolist;

}
我的Firebase助手类如下所示

public void getData(String category) {
    //SETUP RV
  //  rv= (RecyclerView) findViewById(R.id.recyclerv);
   // rv.setLayoutManager(new LinearLayoutManager(this));
    catS=category;
    adapter = new MyAdapter(this, helper.retrieve(catS));
    rv.setAdapter(adapter);
}
 DatabaseReference AdvertisementRef;
ArrayList<SaveAddInformation>adinfolist=new  ArrayList();
MyAdapter adapter;

public Firebase_helper(DatabaseReference advertisementRef) {
    AdvertisementRef = advertisementRef;
}

//READ DATA

public ArrayList<SaveAddInformation> retrieve(String cat){
    String categoryS;
    categoryS=cat;

    AdvertisementRef.orderByChild("main_category").equalTo(categoryS).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot eventSnapshot : dataSnapshot.getChildren()) {

                SaveAddInformation mModel = eventSnapshot.getValue(SaveAddInformation.class);
                Log.d("DATA" ,""+ mModel);
                adinfolist.add(mModel);
            }
           // adapter.notifyDataSetChanged();
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }

    });

    return adinfolist;

}
数据库参考AdvertisementRef;
ArrayListInFolist=新的ArrayList();
MyAdapter适配器;
公共Firebase_助手(数据库参考advertisementRef){
AdvertisementRef=AdvertisementRef;
}
//读取数据
公共ArrayList检索(字符串cat){
字符串类别;
类别=猫;
AdvertisementRef.orderByChild(“主类别”).equalTo(类别).addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
对于(DataSnapshot eventSnapshot:DataSnapshot.getChildren()){
SaveAddInformation mModel=eventSnapshot.getValue(SaveAddInformation.class);
Log.d(“数据”,“mModel”);
adinfolist.add(mModel);
}
//adapter.notifyDataSetChanged();
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
复印机;
}

可能重复的变量是否设置了变量的value@zihadrizkyef我也设置了值。请查找已编辑的代码。您可以尝试查看这一点。我看不出您设置了
helper
的值。如果系统说引用为null,则该值为null。可能您设置helper的代码未被调用或位于错误的位置。可能重复您是否设置了变量的value@zihadrizkyef我也设置了值。请查找已编辑的代码。您可以尝试查看这一点。我看不出您设置了
helper
的值。如果系统说引用为null,则该值为null。可能您设置helper的代码未被调用或正在运行错地方了。