title: Android - NullPointerException on SearchView in Fragment
body: <p>I am always getting searchView null at below line in my fragment class:</p>
  
  <p>SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);</p>
  
  <p>here is my fragment class, Please find onCreateOptionsMenu method at bottom:</p>
  
  <pre><code>public class FriendsListActivity extends  Fragment implements EventListener {
  
      ArrayList&lt;Users&gt; friendList = new ArrayList&lt;Users&gt;();
      ArrayList&lt;Users&gt; blockedList = new ArrayList&lt;Users&gt;();
      ArrayList&lt;Users&gt; famliyList = new ArrayList&lt;Users&gt;();
      ArrayList&lt;Users&gt; newContactList = new ArrayList&lt;Users&gt;();
  
      ArrayList&lt;JSONObject&gt; finalContactList = new ArrayList&lt;JSONObject&gt;();
      ArrayList&lt;JSONObject&gt; modifiedContactList = new ArrayList&lt;JSONObject&gt;();
  
      static int count;
  
      private Menu optionsMenu;
  
      private DBHelper mydb ;
  
      Map&lt;String , String&gt; dbContectMap;
  
      SocketOperator socket;
  
      boolean isGetResult = false;
  
      List&lt;String&gt; mobileList = new ArrayList&lt;String&gt;();
  
      JSONObject changeCategoryJobj = new JSONObject();
  
      CutsomAdapter customFriendListAdapter;
  
      String headerpixurl = "images/b58a34f2-ec57-494f-821e-09ecf584449e/profileImage/stickyHeader/82508da9-bf53-488f-a09b-3bb250cc1bd2.PNG";
  
      String startCategory;
      String lastCategory = "start";
      int isHeader = 0;
      ListView lv1;
  
      private boolean isActivityInitialized = false;
  
  
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
          FragmentActivity    faActivity  = (FragmentActivity)    super.getActivity();
          // main layout which contains list
          LinearLayout        llLayout    = (LinearLayout)    inflater.inflate(R.layout.friends_activity_main, container, false);
  
  
          //sqlite DB
          mydb = new DBHelper(FriendsListActivity.super.getActivity());
          dbContectMap = mydb.getAllCotacts();
  
          socket = new SocketOperator(this);
  
          fetchContactsFromPhone();// from phone
          int count = 0;
          try {
              while(!isGetResult &amp;&amp; count &lt;= 6){
                  Thread.sleep(5000);
                  count++;
              }
  
          } catch (InterruptedException e) {
              e.printStackTrace();
          }
  
          //fetchContactsFromServer(mobileList);
  
          // friends_activity_list_row_layout , represents one item in list view
          customFriendListAdapter = new CutsomAdapter(FriendsListActivity.super.getActivity().getApplicationContext(), 
                  R.layout.friends_activity_list_row_layout , finalContactList );
          // this will be list which conain items
          lv1= (ListView) llLayout.findViewById(R.id.friends_activity_custom_list);
          lv1.setStackFromBottom(false);
          lv1.setAdapter(customFriendListAdapter);
  
          setHasOptionsMenu(true);
          setupActionBar();
          isActivityInitialized = true;
          return llLayout;
      }
  
      // give a delete button to remove permanatly from list
  
      // same code is in LoginActivity, when ever change here also code review the LoginActivity code too
      public void fetchContactsFromPhone() {
  
          String phoneNumber = null;
          String email = null;
  
          Uri CONTENT_URI = ContactsContract.Contacts.CONTENT_URI;
          String _ID = ContactsContract.Contacts._ID;
          String DISPLAY_NAME = ContactsContract.Contacts.DISPLAY_NAME;
          String HAS_PHONE_NUMBER = ContactsContract.Contacts.HAS_PHONE_NUMBER;
  
          Uri PhoneCONTENT_URI = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
          String Phone_CONTACT_ID = ContactsContract.CommonDataKinds.Phone.CONTACT_ID;
          String NUMBER = ContactsContract.CommonDataKinds.Phone.NUMBER;
  
          Uri EmailCONTENT_URI = ContactsContract.CommonDataKinds.Email.CONTENT_URI;
          String EmailCONTACT_ID = ContactsContract.CommonDataKinds.Email.CONTACT_ID;
          String DATA = ContactsContract.CommonDataKinds.Email.DATA;
  
          //StringBuffer output = new StringBuffer();
  
          ContentResolver contentResolver = FriendsListActivity.super.getActivity().getContentResolver();
  
          Cursor cursor = contentResolver.query(CONTENT_URI, null, null, null,
                  null);
  
          // Loop for every contact in the phone
          if (cursor.getCount() &gt; 0) {
  
              while (cursor.moveToNext()) {
  
                  String contact_id = cursor
                          .getString(cursor.getColumnIndex(_ID));
                  String name = cursor.getString(cursor
                          .getColumnIndex(DISPLAY_NAME));
  
                  int hasPhoneNumber = Integer.parseInt(cursor.getString(cursor
                          .getColumnIndex(HAS_PHONE_NUMBER)));
  
                  if (hasPhoneNumber &gt; 0) {
  
                      // Query and loop for every phone number of the contact
                      Cursor phoneCursor = contentResolver.query(
                              PhoneCONTENT_URI, null, Phone_CONTACT_ID + " = ?",
                              new String[] { contact_id }, null);
  
                      while (phoneCursor.moveToNext()) {
                          phoneNumber = phoneCursor.getString(phoneCursor
                                  .getColumnIndex(NUMBER));
                          // output.append("\n Phone number:" + phoneNumber);
  
                      }
  
                      phoneCursor.close();
                      Users user = new Users();
                      user.name = name;
                      user.mobileNumber = phoneNumber;
                      //friendList.add(user);
                      // check if this user/phone number is already added to server friendList
                      if( !dbContectMap.containsKey(phoneNumber)){
                          mobileList.add(phoneNumber);
                      }
                  }
  
              }
  
              // outputText.setText(output);
          }
  
          // send to server and update mydb
          try {
              JSONObject jsonObj = new JSONObject();
              jsonObj.put("action", "addNewContactInFriendList");
              jsonObj.put("userid", MyData.getMyDataInstance().getString(MyData.USERID));
              JSONArray mobileListArray = new JSONArray(mobileList);
              jsonObj.put("mobileList", mobileListArray);
  
              socket.sendMessage(jsonObj);
          } catch (JSONException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
  
      }
  
      /**
       * The Class CutsomAdapter is the adapter class for Activity ListView. The
       * currently implementation of this adapter simply display static dummy
       * contents. You need to write the code for displaying actual contents.
       */
      private class CutsomAdapter extends ArrayAdapter&lt;JSONObject&gt; implements
      PinnedSectionListAdapter,  Filterable {
  
          private LayoutInflater layoutInflater;
          private Context context;
          List&lt;Users&gt; userList;
          String radioGroupType;
  
          private OnCustomClickListener callback;
  
          int itemListSize = 0;
  
          ArrayList&lt;JSONObject&gt; listData;
          ArrayList&lt;JSONObject&gt; tempListData;
  
          private FriendsFilter friendsFilter;
  
  
          public CutsomAdapter(Context context, int textViewResourceId, ArrayList&lt;JSONObject&gt; finalArrayList) {
              super(context, textViewResourceId, finalArrayList);
              layoutInflater = LayoutInflater.from(context);
              this.context = context;
              this.listData = finalArrayList;
              this.tempListData = finalArrayList;
          }
  
          View convertView = null;
  
  
          class ViewHolder {
              ImageView headerImage;          
              TextView name;
              TextView mobile;            
              RadioGroup radioCategory;
              RadioButton radioButton;
          }
  
          class HeaderViewHolder {                
              TextView categoryName;
  
          }
  
          public void setContext(Context context) {
              this.context = context;
          }
  
          @Override
          public int getCount() {
              itemListSize = listData.size();
              return listData.size();
          }
  
          public void setListData(List&lt;JSONObject&gt; list) {
              this.listData = (ArrayList&lt;JSONObject&gt;) list;
          }
  
          @Override
          public JSONObject getItem(int position) {
              return listData.get(position);
          }
  
          @Override
          public boolean isItemViewTypePinned(int viewType) {
              boolean toBePinned = false;
              if (viewType == 1)
                  toBePinned = true;
              // System.out.println("toBePinned: "+toBePinned);
              return toBePinned;
          }
  
          @Override
          public int getItemViewType(int position) {
              JSONObject jo = this.listData.get(position);
              int k = 0;
              isHeader = 0;
              try {
  
                  String header = jo.getString("headerStr");
                  if(header != null &amp;&amp; "headerStr".equalsIgnoreCase("headerStr")){
                      k=1;
                      isHeader = 1;
                  }
  
              } catch (JSONException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
              return k;
          }
  
          @Override
          public int getViewTypeCount() {
              return 2;
          }
  
  
          /*
           * (non-Javadoc)
           * 
           * @see android.widget.Adapter#getItemId(int)
           */
          @Override
          public long getItemId(int arg0) {
              return arg0;
          }
  
  
          /*
           * (non-Javadoc)
           * 
           * @see android.widget.Adapter#getView(int, android.view.View,
           * android.view.ViewGroup)
           */
          @Override
          public View getView(final int position, View convertViewx, ViewGroup parent) {
  
              final JSONObject jObj = (JSONObject) listData.get(position);
  
              View convertView = null;
  
  
              //int isHeader = 0;
              try {
                  //isHeader = jObj.getInt("TYPE");
                  String header = jObj.getString("headerStr"); 
              } catch (Exception e1) {
                  // TODO Auto-generated catch block
                  e1.printStackTrace();
              }
  
              //if (lastCategory.equalsIgnoreCase("start") || !startCategory.equalsIgnoreCase(lastCategory)) {
              if(isHeader == 1){
  
                  final JSONObject jObjX = (JSONObject) listData.get(position);
                  convertView = layoutInflater.inflate(R.layout.friends_activity_sticky_header,
                          null);
                  final HeaderViewHolder headerViewHolder = new HeaderViewHolder();
  
                  convertView.setBackgroundColor(Color.WHITE);                
                  headerViewHolder.categoryName = (TextView) convertView
                          .findViewById(R.id.header);
  
                  try {
                      String header = jObjX.getString("headerStr");                   
                      headerViewHolder.categoryName.setText(header);
  
                      //headerViewHolder.userProfilePic.seti();
                  } catch (JSONException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
  
              }
  
              else {
  
                  try {
  
                      final ViewHolder holder;
                      if (convertView == null) {
                          convertView = layoutInflater.inflate( 
                                  R.layout.friends_activity_list_row_layout, null);
                      }           
  
  
                      holder = new ViewHolder();
  
                      holder.headerImage = (ImageView)convertView.findViewById(R.id.headerImage);
                      Picasso.with(context).load(MyData.SERVER_URL+jObj.getString("headerpixurl")).into(holder.headerImage);
  
                      holder.name = (TextView) convertView.findViewById(R.id.name);
                      holder.name.setText(jObj.getString("name"));
  
                      holder.mobile = (TextView) convertView.findViewById(R.id.mobile);
                      holder.mobile.setText(jObj.getString("mobile"));
                      if(jObj.getString("category").equalsIgnoreCase("friends")){
                          holder.radioButton = (RadioButton) convertView.findViewById(R.id.friend);
                          holder.radioButton.setChecked(true);
                      }else if(jObj.getString("category").equalsIgnoreCase("family")){
                          holder.radioButton = (RadioButton) convertView.findViewById(R.id.family);
                          holder.radioButton.setChecked(true);
                      }else if(jObj.getString("category").equalsIgnoreCase("blocked")){
                          holder.radioButton = (RadioButton) convertView.findViewById(R.id.block);
                          holder.radioButton.setChecked(true);
  
                      }else if(jObj.getString("category").equalsIgnoreCase("newuser")){
                          // dont do any thing let user select , which category he choose for this user
                      }   
  
                      holder.radioCategory = (RadioGroup) convertView.findViewById(R.id.radioCategory);
  
                      holder.radioCategory.setTag(position);
                      holder.radioCategory.setOnCheckedChangeListener(listener);
  
                  } catch (Exception e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
  
                  lastCategory = startCategory;
  
              }
  
              return convertView;
  
          }
  
          // https://stackoverflow.com/questions/28574000/fill-a-listview-with-radio-button-groups-with-an-onclick-listener-in-the-adapter
          RadioGroup.OnCheckedChangeListener listener = new RadioGroup.OnCheckedChangeListener() {
              @Override
              public void onCheckedChanged(RadioGroup radioGroup, int id) {
  
                  RadioButton radio = (RadioButton)radioGroup.findViewById(radioGroup.getCheckedRadioButtonId());
                  int index = (Integer) radioGroup.getTag();
                  JSONObject selected = (JSONObject) getItem(index);
  
                  try{
                      switch (id) {
  
  
                              case R.id.friend:
                                  System.out.println("friend");
                                  selected.put("newCategory", "friends");
                                  modifiedContactList.add(selected);
                                  //finalContactList.remove(index);
                                  break;
                              case R.id.family:
                                  System.out.println("family");
                                  selected.put("newCategory", "family");
                                  modifiedContactList.add(selected);
                                  //finalContactList.remove(index);
                                  break;
                              case R.id.block:
                                  System.out.println("block");
                                  selected.put("newCategory", "blocked");
                                  modifiedContactList.add(selected);
                                  //finalContactList.remove(index);
                                  break;
  
                      }
  
                  }catch(Exception ex){
  
                  }
              }
          };
  
          public void resetData() {
              listData  = tempListData ;
          }
  
  
          @Override
          public Filter getFilter() {
              if (friendsFilter == null)
                  friendsFilter = new FriendsFilter();
  
              return friendsFilter;
          }
  
          // https://github.com/survivingwithandroid/Surviving-with-android/blob/master/ListView_Filter_Tutorial/src/com/survivingwithandroid/listview/SimpleList/PlanetAdapter.java
  
          private class FriendsFilter extends Filter {
  
              @Override
              protected FilterResults performFiltering(CharSequence constraint) {
                  FilterResults results = new FilterResults();
                  // We implement here the filter logic
                  if (constraint == null || constraint.length() == 0) {
                      // No filter implemented we return all the list
                      results.values = tempListData;
                      results.count = tempListData.size();
                  }
                  else {
                      // We perform filtering operation
                      List&lt;JSONObject&gt; nPlanetList = new ArrayList&lt;JSONObject&gt;();
  
                      for (JSONObject p : listData) {
                          try {
                              if (p.getString("name").toUpperCase().startsWith(constraint.toString().toUpperCase()))
                                  nPlanetList.add(p);
                          } catch (JSONException e) {
                              // TODO Auto-generated catch block
                              e.printStackTrace();
                          }
                      }
  
                      results.values = nPlanetList;
                      results.count = nPlanetList.size();
  
                  }
                  return results;
              }
  
              @Override
              protected void publishResults(CharSequence constraint, FilterResults results) {
                  // Now we have to inform the adapter about the new list filtered
                  if (results.count == 0)
                      notifyDataSetInvalidated();
                  else {
                      listData = (ArrayList&lt;JSONObject&gt;) results.values;
                      notifyDataSetChanged();
                  }
  
              }
  
          }
  
      }
  
      private void toList(List&lt;Users&gt; contactList, JSONArray array) throws JSONException {
  
          int size = array.length();
          for (int i = 0; i &lt; size; i++) {
              JSONObject jobj = array.getJSONObject(i);
              Users user = new Users();
              user.userid = jobj.getString("userid");
              user.name = jobj.getString("name");
              //user.category = jobj.getString("category");
              user.imageURL = jobj.getString("headerpixurl");
  
              // #### FOR TESTING
              headerpixurl = jobj.getString("headerpixurl");
  
              user.mobileNumber = jobj.getString("mobile");
  
              contactList.add(user);
          }
          //return contactList;
      }
  
      //  #### FOR TESTING ####
  
      private void testing(JSONArray jArray, String category){
  
  
          for (count= 0; count &lt; 5; count++) {
  
              try {
                  JSONObject jObj = new JSONObject();
  
                  jObj.put("userid", "1234"+count);
                  jObj.put("name", "vichi"+count);
                  jObj.put("mobile", "9999");
                  jObj.put("headerpixurl", headerpixurl);
                  jObj.put("category", category);
                  jArray.put(jObj);
              } catch (JSONException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
  
          }
      }
  
      private void mergeInList(JSONArray jArray){
  
          for(int i=0; i &lt; jArray.length(); i++){
              try {
                  finalContactList.add(jArray.getJSONObject(i));
              } catch (JSONException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
          }
  
      }
  
  
      @Override
      public void eventReceived(String event) throws JSONException {
          // when we will get return phone number then only we will update sqlite table
          final JSONObject eventJObjx = new JSONObject(event);
  
          if(isActivityInitialized){
  
              FriendsListActivity.super.getActivity().runOnUiThread(new Runnable() {
                  @Override
                  public void run() {
                      try {
                          intilizeContactsList(eventJObjx);
                          customFriendListAdapter.notifyDataSetChanged();
                      }catch(Exception ex){
  
                      }
                  }
              });
  
          }else{
              intilizeContactsList(eventJObjx);
          }
  
          //mydb.insertContact(phone, "Y");
      }
  
  
      private void intilizeContactsList(JSONObject eventJObjx) throws JSONException{
          //#### ALWAYS MAINTAIN THIS ORDER ####  
          finalContactList.clear();
          modifiedContactList.clear();
          JSONArray newuserArray = eventJObjx.getJSONArray("newuser");
          if(newuserArray.length() &gt; 0){
              JSONObject jObj1 = new JSONObject();
              jObj1.put("headerStr", " New User");
              finalContactList.add(jObj1);
              mergeInList(newuserArray);
          }
  
          JSONArray friendsArray = eventJObjx.getJSONArray("friends");
          //testing(friendsArray, "friends");
          if(friendsArray.length() &gt; 0){
              JSONObject jObj1 = new JSONObject();
              jObj1.put("headerStr", " Friends ");
              finalContactList.add(jObj1);
              mergeInList(friendsArray);
          }
  
          JSONArray familyArray = eventJObjx.getJSONArray("family");
          //testing(familyArray, "family");
          if(familyArray.length() &gt; 0){
              JSONObject jObj1 = new JSONObject();
              jObj1.put("headerStr", " Family ");
              finalContactList.add(jObj1);
              mergeInList(familyArray);
          }
  
  
          JSONArray blockedArray = eventJObjx.getJSONArray("blocked");
          //testing(blockedArray, "blocked");
          if(blockedArray.length() &gt; 0){
              JSONObject jObj1 = new JSONObject();
              jObj1.put("headerStr", " Blocked ");
              finalContactList.add(jObj1);
              mergeInList(blockedArray);
          }
  
  
          for(int i=0; i &lt; newuserArray.length(); i++){
              //mobileToAddInFriendList.add(mobileListArray.getString(i));
              mydb.insertContact(newuserArray.getJSONObject(i).getString("mobile"), "Y");
          }
  
          isGetResult = true;
      }
  
  
      protected void setupActionBar() {
          final ActionBar actionBar = FriendsListActivity.super.getActivity().getActionBar();
          actionBar.setDisplayShowTitleEnabled(true);
          actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
          actionBar.setDisplayUseLogoEnabled(true);
          actionBar.setLogo(R.drawable.icon);
          actionBar.setBackgroundDrawable(getResources().getDrawable(
                  R.drawable.actionbar_bg));
          // actionBar.setDisplayHomeAsUpEnabled(true);
          // actionBar.setHomeButtonEnabled(true);
      }
  
  
      @Override
      public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
          FriendsListActivity.super.getActivity().getMenuInflater().inflate(R.menu.friends_activity_menu, menu);
          this.optionsMenu = menu;
          super.onCreateOptionsMenu(menu, inflater);
  
          SearchManager searchManager = (SearchManager) FriendsListActivity.super.getActivity().getSystemService(Context.SEARCH_SERVICE);
          //SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
  
          MenuItem searchItem = menu.findItem(R.id.action_search);
          SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
  
          searchView.setSearchableInfo(searchManager.getSearchableInfo(FriendsListActivity.super.getActivity().getComponentName()));
          searchView.setIconifiedByDefault(false);
  
          SearchView.OnQueryTextListener textChangeListener = new SearchView.OnQueryTextListener()
          {
              @Override
              public boolean onQueryTextChange(String newText)
              {
                  // this is your adapter that will be filtered
                  customFriendListAdapter.getFilter().filter(newText);
                  System.out.println("on text chnge text: "+newText);
                  return true;
              }
              @Override
              public boolean onQueryTextSubmit(String query)
              {
                  // this is your adapter that will be filtered
                  customFriendListAdapter.getFilter().filter(query);
                  System.out.println("on query submit: "+query);
                  return true;
              }
          };
          searchView.setOnQueryTextListener(textChangeListener);
      }
  
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
  
          super.onOptionsItemSelected(item);
  
          switch (item.getItemId()) {
          case R.id.done:
              try {
                  JSONObject jsonObj = new JSONObject();
                  jsonObj.put("action", "moveContact");
                  jsonObj.put("userid", MyData.getMyDataInstance().getString(MyData.USERID));
                  JSONArray mobileListArray = new JSONArray(modifiedContactList);
                  jsonObj.put("modifiedList", mobileListArray);
                  socket.sendMessage(jsonObj);
                  modifiedContactList.clear();
              } catch (Exception e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
  
              break;
  
          }
          return super.onOptionsItemSelected(item);
  
      }
  
  }
  </code></pre>
  
  <p>here is my menu.xml file</p>
  
  <pre><code>&lt;menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"&gt;
      &lt;item
          android:id="@+id/done"
          android:icon="@drawable/ic_action_accept"
          app:showAsAction="always"
          android:title="@string/upload"/&gt;
      &lt;item
          android:id="@+id/action_search"
          app:actionViewClass="android.support.v7.widget.SearchView"
          android:icon="@drawable/ic_launcher"
          app:showAsAction="always|collapseActionView"
          android:maxWidth="100dp"
          android:title="Search"/&gt;
  &lt;/menu&gt;
  </code></pre>
  
  <p>here is log snippet:</p>
  
  <pre><code>07-23 15:18:59.015    1841-1841/com.woohoo E/AndroidRuntime? FATAL EXCEPTION: main
  Process: com.woohoo, PID: 1841
  java.lang.NullPointerException
          at com.woohoo.FriendsListActivity.onCreateOptionsMenu(FriendsListActivity.java:797)
          at android.support.v4.app.Fragment.performCreateOptionsMenu(Fragment.java:1871)
          at android.support.v4.app.FragmentManagerImpl.dispatchCreateOptionsMenu(FragmentManager.java:2001)
          at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:278)
          at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:436)
          at com.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:800)
          at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:221)
          at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
          at android.view.Choreographer.doCallbacks(Choreographer.java:574)
          at android.view.Choreographer.doFrame(Choreographer.java:543)
          at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
          at android.os.Handler.handleCallback(Handler.java:733)
          at android.os.Handler.dispatchMessage(Handler.java:95)
          at android.os.Looper.loop(Looper.java:136)
          at android.app.ActivityThread.main(ActivityThread.java:5001)
          at java.lang.reflect.Method.invokeNative(Native Method)
          at java.lang.reflect.Method.invoke(Method.java:515)
          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
          at dalvik.system.NativeStart.main(Native Method)
  </code></pre>
  
  <p>surprisingly it is working fine in Eclipse but giving nullpointerexception in Android Studio.</p>
  
  <p>I already have tried with same configuration like below links:
  <a href="https://stackoverflow.com/questions/18832890/android-nullpointerexception-on-searchview-in-action-bar/18942838#18942838">Android - NullPointerException on SearchView in Action Bar</a></p>
  
  <p><a href="https://stackoverflow.com/questions/7230893/android-search-with-fragments">Android search with Fragments</a></p>