title: NullPointerException on getAction( ) or Intent
body: <p>I wanted to utilize the search view widget in the action bar with the Google Places API and stumbled upon a link to a tutorial that was shared in various posts on Stack Overflow, so I decided to check it out. I have it all implemented into my existing code, but I am getting a NullPointerException and am hoping someone can help me out a bit, so I can debug the issue. I've been browsing through various posts on Stack Overflow and articles via Google...</p>
  
  <p>Logcat specifies that it is caused by lines 119 and 123.</p>
  
  <p>MainActivity.java:</p>
  
  <pre><code>public class MainActivity extends FragmentActivity implements
  GooglePlayServicesClient.ConnectionCallbacks,
  GooglePlayServicesClient.OnConnectionFailedListener,
  LocationListener,
  OnMapLongClickListener,
  LoaderCallbacks&lt;Cursor&gt; {
  
  //Global Constants
  private final static int CONNECTION_FAILURE_RESOLUTION_REQUEST = 9000;
  
  // Milliseconds per second
  private static final int MILLISECONDS_PER_SECOND = 1000;
  // Update frequency in seconds
  public static final int UPDATE_INTERVAL_IN_SECONDS = 5;
  // Update frequency in milliseconds
  private static final long UPDATE_INTERVAL =
          MILLISECONDS_PER_SECOND * UPDATE_INTERVAL_IN_SECONDS;
  // The fastest update frequency, in seconds
  private static final int FASTEST_INTERVAL_IN_SECONDS = 1;
  // A fast frequency ceiling in milliseconds
  private static final long FASTEST_INTERVAL =
          MILLISECONDS_PER_SECOND * FASTEST_INTERVAL_IN_SECONDS;
  
  
  //Global Variables
  GoogleMap map;
  Marker marker;
  LocationRequest requestLocation;
  LocationClient locationClient;
  LocationManager locationManager;
  boolean updatesRequested;
  Geofence geoFence;
  Vibrator vibStatus;
  
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  
      // Create the LocationRequest object
      requestLocation = LocationRequest.create();
      // Use high accuracy
      requestLocation.setPriority(
              LocationRequest.PRIORITY_HIGH_ACCURACY);
      // Set the update interval to 5 seconds
      requestLocation.setInterval(UPDATE_INTERVAL);
      // Set the fastest update interval to 1 second
      requestLocation.setFastestInterval(FASTEST_INTERVAL);
  
  
      SupportMapFragment fragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
      map = fragment.getMap();
  
      //Enables "My Location" button on map fragment
      map.getUiSettings().setMyLocationButtonEnabled(true);
  
      //Create a new location client, using the enclosing class to handle callbacks.
      locationClient = new LocationClient(this, this, this);
      // Start with updates turned off
      updatesRequested = false;
  
      //
      map.setOnMapLongClickListener(this);
  
      // Look up the AdView as a resource and load a request.
      AdView adView = (AdView)this.findViewById(R.id.adView);
      AdRequest adRequest = new AdRequest.Builder().build();
      adView.loadAd(adRequest);
  
      handleIntent(getIntent()); //This is line 119 in my code
    }
  
  private void handleIntent(Intent intent){
      if(intent.getAction().equals(Intent.ACTION_SEARCH)){ //This is line 123 in my code
          doSearch(intent.getStringExtra(SearchManager.QUERY));
      }else if(intent.getAction().equals(Intent.ACTION_VIEW)){
          getPlace(intent.getStringExtra(SearchManager.EXTRA_DATA_KEY));
      }
  }
  
  @Override
  protected void onNewIntent(Intent intent) {
      super.onNewIntent(intent);
      setIntent(intent);
      handleIntent(intent);
  }
  ...
  }
  </code></pre>
  
  <p>AndroidManifest.xml:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com...." //Removed while posting on forum
  android:versionCode="1"
  android:versionName="1.0" &gt;
  
  &lt;uses-sdk
      android:minSdkVersion="10"
      android:targetSdkVersion="19" /&gt;
  
  &lt;!-- Protect the map component of the application using application signature --&gt;
  &lt;permission
      android:name="com.....permission.MAPS_RECEIVE" //Removed while posting on forum
      android:protectionLevel="signature" /&gt;
  
  &lt;!-- Allows to receive map --&gt;
  &lt;uses-permission android:name="com.....permission.MAPS_RECEIVE" /&gt; //Removed while posting on forum
  
  &lt;uses-permission android:name="android.permission.INTERNET" /&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;
  &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&gt;
  &lt;uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&gt;
  &lt;uses-permission android:name="android.permission.VIBRATE" /&gt;
  
  &lt;uses-feature
      android:glEsVersion="0x00020000"
      android:required="true" /&gt;
  
  &lt;application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/Theme.AppCompat.Light.DarkActionBar" &gt;
      &lt;activity
          android:name="com.....SplashActivity" //Removed while posting on forum
          android:label="@string/app_name"
          android:screenOrientation="portrait" &gt;
          &lt;intent-filter&gt;
              &lt;action android:name="android.intent.action.MAIN" /&gt;
              &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
          &lt;/intent-filter&gt;
      &lt;/activity&gt;
      &lt;activity
          android:name="com.....MainActivity" //Removed while posting on forum
          android:label="@string/app_name"
          android:launchMode="singleTop"
          android:screenOrientation="portrait" &gt;
          &lt;intent-filter&gt;
              &lt;action android:name="android.intent.action.SEARCH" /&gt;
          &lt;/intent-filter&gt;
          &lt;!-- Points to searchable activity --&gt;
          &lt;meta-data android:name="android.app.default_searchable"
              android:value="com.....MainActivity" /&gt; //Removed while posting on forum
  
          &lt;!-- Points to searchable meta data --&gt;
          &lt;meta-data android:name="android.app.searchable"
              android:resource="@xml/searchable"/&gt;
      &lt;/activity&gt;
  
      &lt;activity
          android:name="com.....PreferencesActivity" //Removed while posting on forum
          android:label="@string/title_activity_settings"
          android:parentActivityName="com.....MainActivity" //Removed while posting on forum
          android:screenOrientation="portrait" &gt;
          &lt;meta-data
              android:name="android.support.PARENT_ACTIVITY"
              android:value="com.....MainActivity" /&gt; //Removed while posting on forum
      &lt;/activity&gt;
      &lt;activity
          android:name="com.....AlarmActivity" //Removed while posting on forum
          android:label="@string/title_activity_alarm" &gt;
      &lt;/activity&gt;
      &lt;activity
          android:name="com.google.android.gms.ads.AdActivity"
          android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" /&gt;
      &lt;activity
          android:name="com.....PlaceJSONParser" //Removed while posting on forum
          android:label="@string/title_activity_place_jsonparser" &gt;
      &lt;/activity&gt;
      &lt;activity
          android:name="com.....PlaceDetailsJSONParser" //Removed while posting on forum
          android:label="@string/title_activity_place_details_jsonparser" &gt;
      &lt;/activity&gt;
      &lt;activity
          android:name="com.....PlaceProvider" //Removed while posting on forum
          android:label="@string/title_activity_place_provider" &gt;
      &lt;/activity&gt;
  
       &lt;provider
          android:name=".PlaceProvider"
          android:authorities="com.....PlaceProvider" //Removed while posting on forum
          android:exported="false" /&gt;
  
      &lt;meta-data
          android:name="com.google.android.gms.version"
          android:value="@integer/google_play_services_version" /&gt;
      &lt;meta-data
          android:name="com.google.android.maps.v2.API_KEY"
          android:value="MY-KEY-HERE" /&gt; //Removed while posting on forum
  
  &lt;/application&gt;
  
  &lt;/manifest&gt;
  </code></pre>