0

I am using RecyclerView in my app. My application crashes with the following error

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView$LayoutManager.onMeasure(android.support.v7.widget.RecyclerView$Recycler, android.support.v7.widget.RecyclerView$State, int, int)' on a null object reference

While searching on stackoverflow I found that this error usually comes when layoutmanager was not added. But I have added the layout manager. Please help me find what is causing this crash.

Edit - Code for the fragment using Recyclerview

public class FeedFragment extends Fragment implements HJAppConstants {

    private RecyclerView mRecyclerView;

    private FeedRecyclerAdapter mAdapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.hj_feed_layout, null);
        mRecyclerView = (RecyclerView) view
                .findViewById(R.id.feeds_recycler_view);
        return view;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        LinearLayoutManager layoutManager = new LinearLayoutManager(
                getActivity());
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        mRecyclerView.setLayoutManager(layoutManager);
        mAdapter = new FeedRecyclerAdapter();
        mRecyclerView.setAdapter(mAdapter);
        addData();

    }

    /**
     * Adds static data
     */
    private void addData() {
        ArrayList<HJFeedItemObject> itemObjs = new ArrayList<HJFeedItemObject>();
        itemObjs.add(new HJFeedItemObject(HJ_FEED_TYPE_PHOTO,
                "potala_palace.jpg", "This is an article about Potala Palace",
                "Thu 7, 07:45pm", new HJUserObject("Umesh", "")));
        itemObjs.add(new HJFeedItemObject(HJ_FEED_TYPE_PRODUCT, "pokhara.jpg",
                "A beautiful place to visit - Pokhara ", "Thu 7, 07:45pm",
                new HJUserObject("Umesh", "")));
        itemObjs.add(new HJFeedItemObject(HJ_FEED_TYPE_ARTICLE, "patan.jpg",
                "A Tourist attraction - Patan", "Thu 7, 07:45pm",
                new HJUserObject("Umesh", "")));
        itemObjs.add(new HJFeedItemObject(HJ_FEED_TYPE_PHOTO,
                "potala_palace.jpg", "This is an article about Potala Palace",
                "Thu 7, 07:45pm", new HJUserObject("Umesh", "")));
        itemObjs.add(new HJFeedItemObject(HJ_FEED_TYPE_PRODUCT, "pokhara.jpg",
                "A beautiful place to visit - Pokhara ", "Thu 7, 07:45pm",
                new HJUserObject("Umesh", "")));
        itemObjs.add(new HJFeedItemObject(HJ_FEED_TYPE_ARTICLE, "patan.jpg",
                "A Tourist attraction - Patan", "Thu 7, 07:45pm",
                new HJUserObject("Umesh", "")));
        mAdapter.addData(itemObjs);
    }
J Richard Snape
  • 20,116
  • 5
  • 51
  • 79
umesh lohani
  • 162
  • 1
  • 4
  • 13

1 Answers1

0

This issue occurs when no LayoutManager was provided for the RecyclerView.

Change your code, and move the layoutManager setup to onCreateView.

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState){

   View view = inflater.inflate(R.layout.hj_feed_layout, null);
   mRecyclerView = (RecyclerView) view
                .findViewById(R.id.feeds_recycler_view);

   LinearLayoutManager layoutManager = new LinearLayoutManager(
                getActivity());
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        mRecyclerView.setLayoutManager(layoutManager);

   return view;
}
Gabriele Mariotti
  • 320,139
  • 94
  • 887
  • 841