title: AsyncTask NullPointerException
body: <p>I am using AsyncTask class and as soon as i start the app I am getting null pointer exception and app goes Forceclose.In this Activity i want to parse the json string and load the data in listview.</p>
  
  <p>here is the Activiy.</p>
  
  <pre><code>public class JsonExampleActivity extends ListActivity {
   /** Called when the activity is first created. */
   ProgressDialog mDialog;
   Context mContext;
   Location location;
   LocationManager lm;
   final String TAG="a.c.b";
   JSONFunction JSONfunction;
   double latitude[]=new double[20];
   double longitude[]=new double[20];
   String reference[]=new String[20];
   double distance[]=new double[20];
   final Intent intent=new Intent(this ,GetLatAndLng.class);
  ArrayList&lt;HashMap&lt;String, String&gt;&gt; mylist = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;();
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
  
      setContentView(R.layout.listplaceholder);
  
      new JSONPasingShowList().execute();
  }
  
  public void updateWithNewLocation(Location location2) {
      if(location2!=null) {
            double geoLat = location2.getLatitude();
  
              double geoLng = location2.getLongitude();
      }   
  }
  
  class JSONPasingShowList extends AsyncTask&lt;Void, Void,Void&gt;
  {  
  
      @Override
      protected void onPreExecute() {
          mDialog = ProgressDialog.show(mContext,"Loading","Please wait...", true);
      }
  
  @Override
  protected Void doInBackground(Void... params) {
  
      LocationManager locationManager;
      String context=Context.LOCATION_SERVICE;
      locationManager=(LocationManager)getSystemService(context);
      Criteria criteria = new Criteria();
      criteria.setAccuracy(Criteria.ACCURACY_FINE);
      criteria.setAltitudeRequired(false);
      criteria.setBearingRequired(false);
      criteria.setCostAllowed(true);
      criteria.setPowerRequirement(Criteria.POWER_LOW);
      String provider = locationManager.getBestProvider(criteria, true);
      Location location = locationManager.getLastKnownLocation(provider);
  
      final LocationListener locationListener = new LocationListener() {
          public void onLocationChanged(Location location) {
          updateWithNewLocation(location);
          }
          public void onProviderDisabled(String provider){
          updateWithNewLocation(null);
          }
          public void onProviderEnabled(String provider){ }
          public void onStatusChanged(String provider, int status,
          Bundle extras){ }
          };
  
      updateWithNewLocation(location);
      locationManager.requestLocationUpdates(provider, 2000, 10,
              locationListener);
  
  
      double geoLat = location.getLatitude();
      Log.v(TAG, "hiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"+geoLat);
      double geoLng = location.getLongitude();
      Log.v(TAG, "hiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"+geoLng);
  
  
      JSONObject  json=JSONFunction.getJSONfromURL("https://maps.googleapis.com/maps/api/place/search/json?location=37.422006,-122.084095&amp;radius=1000&amp;types=doctor&amp;sensor=true&amp;key=AIzaSyA1kh_VA6cnhwHrXA0TAFTba5Kt81dZKzc");
  
      try{
          JSONArray  JArray = json.getJSONArray("results");
             Log.v(TAG, "getting results");
          for(int i=0;i&lt;JArray.length();i++){                     
              HashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();    
              JSONObject e = JArray.getJSONObject(i);
              JSONObject location1=e.getJSONObject("geometry").getJSONObject("location");
              latitude[i]=location1.getDouble("lat");
              longitude[i]=location1.getDouble("lng");
              reference[i]=e.getString("reference");
              Log.v(TAG, reference[i]);
              distance[i]=GetLatAndLng.gps2m(geoLat, geoLng,latitude[i] ,longitude[i]); 
  
              map.put("id",  String.valueOf(i));
              map.put("name", "" + e.getString("name"));
              map.put("vicinity", "Address " +  e.getString("vicinity")+" "+"Disance:"+distance[i]);
  
              mylist.add(map);                        
          }   }catch(JSONException e)        {
               Log.e("log_tag", "Error parsing data "+e.toString());
          }
          Bundle b=new Bundle();
          b.putStringArray("key", reference);
          intent.putExtras(b);
           ListAdapter adapter = new SimpleAdapter(JsonExampleActivity.this, mylist , R.layout.listview, 
                   new String[] { "name", "vicinity", }, 
                   new int[] { R.id.item_title, R.id.item_subtitle });
  
   setListAdapter(adapter);
  
   final ListView lv = getListView();
   lv.setTextFilterEnabled(true); 
   lv.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id) {              
          @SuppressWarnings("unchecked")
              HashMap&lt;String, String&gt; o = (HashMap&lt;String, String&gt;) lv.getItemAtPosition(position);                   
         Toast.makeText(JsonExampleActivity.this, "ID '" + o.get("id") + "' was clicked.", Toast.LENGTH_SHORT).show();
          intent.putExtra("clickedid",position);
          startActivity(intent);
  
  
          }
      });
  
      return null;
  }
  @Override
  protected void onPostExecute(Void result) {
      mDialog.dismiss();
  
  
  }
  
  }
   } 
  </code></pre>
  
  <p>LogCat:</p>
  
  <pre><code> 11-17 20:29:54.186: ERROR/AndroidRuntime(379): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.where/com.where.JsonExampleActivity}: java.lang.NullPointerException
   11-17 20:33:09.487: ERROR/AndroidRuntime(416): Uncaught handler: thread main exiting due to uncaught exception
   11-17 20:33:09.527: ERROR/AndroidRuntime(416): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.where/com.where.JsonExampleActivity}: java.lang.NullPointerException
   11-17 20:33:09.527: ERROR/AndroidRuntime(416):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
   11-17 20:33:09.527: ERROR/AndroidRuntime(416):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
   11-17 20:33:09.527: ERROR/AndroidRuntime(416):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
   11-17 20:33:09.527: ERROR/AndroidRuntime(416):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
   11-17 20:33:09.527: ERROR/AndroidRuntime(416):     at android.os.Handler.dispatchMessage(Handler.java:99)
   11-17 20:33:09.527: ERROR/AndroidRuntime(416):     at android.os.Looper.loop(Looper.java:123)
   11-17 20:33:09.527: ERROR/AndroidRuntime(416):     at android.app.ActivityThread.main(ActivityThread.java:4363)
   11-17 20:33:09.527: ERROR/AndroidRuntime(416):     at java.lang.reflect.Method.invokeNative(Native Method)
   11-17 20:33:09.527: ERROR/AndroidRuntime(416):     at java.lang.reflect.Method.invoke(Method.java:521) 
   11-17 20:33:09.527: ERROR/AndroidRuntime(416):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
   11-17 20:33:09.527: ERROR/AndroidRuntime(416):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
   11-17 20:33:09.527: ERROR/AndroidRuntime(416):     at dalvik.system.NativeStart.main(Native Method)
   11-17 20:33:09.527: ERROR/AndroidRuntime(416): Caused by: java.lang.NullPointerException
  </code></pre>
  
  <p>Any help would be appreciated.
  Thanks in Advance!!</p>