title: NullPointerException: with ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference
body: <p>I get this nullPointerException on runtime:</p>
  
  <blockquote>
    <p><em>Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)'
    on a null object reference</em></p>
  </blockquote>
  
  <p><strong>code from mainActivity:</strong></p>
  
  <pre><code>package com.example.vasilis.spangreek;
  
  import android.app.ActionBar;
  import android.app.Activity;
  import android.content.res.Configuration;
  import android.content.res.TypedArray;
  import android.os.Bundle;
  import android.support.v4.widget.DrawerLayout;
  import android.support.v7.app.ActionBarDrawerToggle;
  import android.support.v7.app.AppCompatActivity;
  import android.util.DisplayMetrics;
  import android.view.Menu;
  import android.view.MenuItem;
  import android.view.View;
  import android.widget.ExpandableListView;
  
  import java.util.ArrayList;
  import java.util.LinkedHashMap;
  import java.util.List;
  import java.util.Map;
  
  import adapter.ExpandableListViewAdapter;
  import model.NavDrawerItem;
  
  
  public class MainActivity extends Activity {
  
      private DrawerLayout mDrawerLayout;
      private ExpandableListView mExpandableListView;
      private ActionBarDrawerToggle mActionBarDrawerToggle;
  
      //nav drawer Title
      private CharSequence mDrawerTitle;
  
      //used to store app titles
      private CharSequence mTitles;
  
      //slide menu items
      private String[] navMenuItems;
      private String[] navSubMenuItems;
      private TypedArray  navMenuIcons;
  
      private List&lt;NavDrawerItem&gt; groupList;
      private List&lt;NavDrawerItem&gt; childList;
      private Map&lt;NavDrawerItem, List&lt;NavDrawerItem&gt;&gt; mapList;
      private ExpandableListViewAdapter mAdapter;
      ActionBar mActionBar;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
  
          mTitles = mDrawerTitle = getTitle();
  
          //nav drawer icons
          navMenuIcons = getResources().obtainTypedArray(R.array.nav_icons);
  
          mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
  
          createGroupList();
          CreateChildList();
  
          // Recycle the typed array
          navMenuIcons.recycle();
  
          mExpandableListView = (ExpandableListView)findViewById(R.id.list_slideMenu);
          mAdapter = new ExpandableListViewAdapter(this, mapList, groupList);
          mExpandableListView.setAdapter(mAdapter);
          mActionBar = getActionBar();
          // enabling action bar app icon and behaving it as toggle button
          mActionBar.setDisplayHomeAsUpEnabled(true);
          mActionBar.setHomeButtonEnabled(true);
  
          //toggle
          mActionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
                  R.string.app_name,   R.string.app_name) {
  
              public void onDrawerClosed(View drawerView) {
                  mActionBar.setTitle(mDrawerTitle);
  
                  // calling onPrepareOptionsMenu() to hide action bar icons
                  invalidateOptionsMenu();
              }
  
  
              public void onDrawerOpened(View drawerView) {
                  mActionBar.setTitle(mDrawerTitle);
                  // calling onPrepareOptionsMenu() to hide action bar icons
                  invalidateOptionsMenu();
              }
          };
  
          mActionBarDrawerToggle.setHomeAsUpIndicator(R.drawable.ic_drawer);
  
          mDrawerLayout.setDrawerListener(mActionBarDrawerToggle);
  
          if(savedInstanceState == null) {
              //displayView(0);
          }
  
  
      }
  
      /***
       * Called when invalidateOptionsMenu() is triggered
       */
      @Override
      public boolean onPrepareOptionsMenu(Menu menu) {
          // if nav drawer is opened, hide the action items
          boolean drawerOpen = mDrawerLayout.isDrawerOpen(mExpandableListView);
          menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
          return super.onPrepareOptionsMenu(menu);
      }
  
      @Override
      public void setTitle(CharSequence title) {
          mTitles = title;
          getActionBar().setTitle(mTitles);
      }
  
      /**
       * When using the ActionBarDrawerToggle, you must call it during
       * onPostCreate() and onConfigurationChanged()...
       */
  
      @Override
      protected void onPostCreate(Bundle savedInstanceState) {
          super.onPostCreate(savedInstanceState);
          // Sync the toggle state after onRestoreInstanceState has occurred.
          mActionBarDrawerToggle.syncState();
      }
  
      @Override
      public void onConfigurationChanged(Configuration newConfig) {
          super.onConfigurationChanged(newConfig);
          // Pass any configuration change to the drawer toggls
          mActionBarDrawerToggle  .onConfigurationChanged(newConfig);
      }
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it is present.
          getMenuInflater().inflate(R.menu.menu_main, menu);
          return true;
      }
  
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
  
          // toggle nav drawer on selecting action bar app icon/title
          if (mActionBarDrawerToggle.onOptionsItemSelected(item)) {
              return true;
          }
          // Handle action bar actions click
          switch (item.getItemId()) {
              case R.id.action_settings:
                  return true;
              default:
                  return super.onOptionsItemSelected(item);
  
          }
      }
  
      private void createGroupList() {
          //load slide menu items
          navMenuItems = getResources().getStringArray(R.array.nav_items);
  
          groupList =new ArrayList&lt;NavDrawerItem&gt;();
  
          for (int i = 0 ; i &lt;  navMenuItems.length ; i++ ) {
              groupList.add(i , new NavDrawerItem(navMenuItems[i], navMenuIcons.getResourceId(i, -1)));
          }
      }
  
      private void CreateChildList() {
  
          mapList = new LinkedHashMap&lt;NavDrawerItem, List&lt;NavDrawerItem&gt;&gt;();
          navSubMenuItems  = getResources().getStringArray(R.array.nav_sub_items);
          childList = new ArrayList&lt;&gt;();
  
  
  
          for ( NavDrawerItem item : groupList) {
              if(item.getTitle().equalsIgnoreCase("learning Spanish")) {
                  for (int i = 0 ;  i &lt; navSubMenuItems.length ; i ++) {
                      childList.add(i, new NavDrawerItem(navSubMenuItems[i]));
                  }
              }
  
              mapList.put(item,childList);
          }
  
      }
  
      private void setGroupIndicatorToRight() {
          /* Get the screen width */
          DisplayMetrics dm = new DisplayMetrics();
          getWindowManager().getDefaultDisplay().getMetrics(dm);
          int width = dm.widthPixels;
  
          mExpandableListView.setIndicatorBounds(width - getDipsFromPixel(35), width
                  - getDipsFromPixel(5));
      }
  
      // Convert pixel to dip
      public int getDipsFromPixel(float pixels) {
          // Get the screen's density scale
          final float scale = getResources().getDisplayMetrics().density;
          // Convert the dps to pixels, based on density scale
          return (int) (pixels * scale + 0.5f);
      }
  }
  </code></pre>
  
  <p>the lines of code that have problem are :</p>
  
  <pre><code> mActionBar = getActionBar();
      // enabling action bar app icon and behaving it as toggle button
      mActionBar.setDisplayHomeAsUpEnabled(true);
      mActionBar.setHomeButtonEnabled(true);
  </code></pre>
  
  <p><strong>i use</strong> : style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"</p>
  
  <p>I have used the getSupportActionBar() but i haven't fount any solution </p>