I am using Recyclerview and Recyclerview adapter generate the null pointer exception .I had tried many things,but i cannot understand the reason.The error say The function getitem count () in Recylcerview adapter is returning null value. Following is My activity code.
package com.example.builderpro;
public class   project_list extends AppCompatActivity  {
MyViewModel myViewModel;
 List<Dproject>  myprojectlist;
Toolbar toolbar;
RecyclerView recyclerView;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode== KeyEvent.KEYCODE_BACK) {
        return false;
    }
    return super.onKeyDown(keyCode, event);
}
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_project_list);
        toolbar=(Toolbar)findViewById(R.id.custom_toolbar);
        recyclerView=(RecyclerView)findViewById(R.id.recycler_view);
    setSupportActionBar(toolbar);
    RecyclerView.LayoutManager layoutManager= new LinearLayoutManager(getApplicationContext());
    recyclerView.setLayoutManager(layoutManager);
    final MyAdaptor myAdaptor=new MyAdaptor();
    recyclerView.setAdapter(myAdaptor);
    final   int sid= getIntent().getIntExtra("supervisor_id",0);
    myViewModel= ViewModelProviders.of(this).get(MyViewModel.class);
    myViewModel.GetAllProject().observe(this, new Observer<List<Dproject>>() {
        @Override
        public void onChanged(List<Dproject> dprojects) {
            myAdaptor.setproject(dprojects);
         }
     });
    }
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
     getMenuInflater().inflate(R.menu.logout_menu,menu);
      return super.onCreateOptionsMenu(menu);
    }
    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    if(item.getItemId()==R.id.logout)
    {
        SharedPreferences preferences= getSharedPreferences("checkbox",MODE_PRIVATE);
        SharedPreferences.Editor editor= preferences.edit();
        editor.putString("remember","false");
        editor.apply();
        finish();
    }
    return super.onOptionsItemSelected(item);
    }
    }
Following is my Adapter code
package com.example.builderpro;
public class MyAdaptor extends RecyclerView.Adapter<MyAdaptor.projectViewHolder>{
private Context context;
private List<Dproject>  myprojectlist;
int Position;
public MyAdaptor() {
}
public MyAdaptor(Context context, List<Dproject> myprojectlist) {
    this.context = context;
    this.myprojectlist = myprojectlist;
}
class   projectViewHolder extends RecyclerView.ViewHolder
{
    ImageView imageView,imageView2;
    TextView title,discription,address;
    Button Button1,Button2;
    public projectViewHolder(View itemView) {
        super(itemView);
        imageView=itemView.findViewById(R.id.Project_Image);
        title=itemView.findViewById(R.id.Project_Title);
        address=itemView.findViewById(R.id.project_address);
        discription=itemView.findViewById(R.id.project_dis);
        Button1=itemView.findViewById(R.id.activity_button);
        Button2=itemView.findViewById(R.id.labour_button);
        imageView2=itemView.findViewById(R.id.card_back);
    }
    }
    @Override
    public projectViewHolder onCreateViewHolder( ViewGroup parent, int viewType) {
    View mview= LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview,parent,false);
    return new projectViewHolder(mview);
    }
    @Override
    public void onBindViewHolder(projectViewHolder holder, int position) {
    Position=position;
    Dproject current_project= myprojectlist.get(position);
    holder.imageView.setImageResource(R.drawable.projectpic);
    holder.title.setText(current_project.getClient_Name());
    holder.discription.setText(current_project.getProject_Discription());
    holder.address.setText(current_project.getLocation());
    holder.Button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent=new Intent(context,activity.class);
            context.startActivity(intent);
        }
    });
    }
    @Override
    public int getItemCount()
    {
    return myprojectlist.size();
     }
    public void setproject(List<Dproject> dprojects)
    {
    this.myprojectlist=dprojects;
    notifyDataSetChanged();
    }
    }
These lines are from Logcat
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.builderpro, PID: 21616
java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
    at com.example.builderpro.MyAdaptor.getItemCount(MyAdaptor.java:83)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:4044)
    at androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:3534)
    at android.view.View.measure(View.java:19857)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
    at android.view.View.measure(View.java:19857)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
    at android.view.View.measure(View.java:19857)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083)
Please help me because i have been stuck on this error for about 5 days. It is really appreciable.
 
    