title: null pointer Exception in ViewRoot.draw(boolean) in android
body: <p>here is my code 
  getting null pointer Exception in ViewRoot.draw(boolean) in android</p>
  
  <p>the logcatView </p>
  
  <pre><code>Travellog [Android Application] 
  DalvikVM[localhost:8616]    
      Thread [&lt;1&gt; main] (Suspended (exception NullPointerException))  
          ViewRoot.draw(boolean) line: 1546   
          ViewRoot.performTraversals() line: 1258 
          ViewRoot.handleMessage(Message) line: 1859  
          ViewRoot(Handler).dispatchMessage(Message) line: 99 
          Looper.loop() line: 130 
          ActivityThread.main(String[]) line: 3683    
          Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
          Method.invoke(Object, Object...) line: 507  
          ZygoteInit$MethodAndArgsCaller.run() line: 839  
          ZygoteInit.main(String[]) line: 597 
          NativeStart.main(String[]) line: not available [native method]  
      Thread [&lt;8&gt; Binder Thread #2] (Running) 
      Thread [&lt;7&gt; Binder Thread #1] (Running) 
      Daemon Thread [&lt;10&gt; RefQueueWorker@org.apache.http.impl.conn.tsccm.ConnPoolByRoute@405a4408] (Running)  
  </code></pre>
  
  <p>Class </p>
  
  <pre><code>            LayoutInflater li= LayoutInflater.from(this);
              View textEntryView = li.inflate(R.layout.alertbox, null);
  
              final AlertDialog.Builder dialog = new AlertDialog.Builder(this);
              dialog.setTitle("Enter the places");
              dialog.setView(textEntryView);
  
            splc = (EditText) textEntryView.findViewById(R.id.strtplace);
              dialog.setPositiveButton("Ok", new OnClickListener(){
  
                  @Override
                  public void onClick(DialogInterface dialog, int which) {
                      // TODO Auto-generated method stub
                      pd = ProgressDialog.show(TravellogActivity.this, "Working..", "Searching your address", true, false);
                      //Show a progress dialog
  
  
                      searchAdress = new Thread(){
                      public void run(){
                              String addressInput = splc.getText().toString(); // Get input text
                              try {
                                  foundAdresses = gc.getFromLocationName(addressInput, 5); // Search addresses
                                  Thread.sleep(1500);
                              } catch (Exception e) {
                                  // @todo: Show error message
                              }
                              showAdressResults.sendEmptyMessage(0);                  
                          }
                      };
                      searchAdress.start();
  
                  }
              });
             dialog.show();
  
  
  
   private Handler showAdressResults = new Handler() {
                  @Override
                  public void handleMessage(Message msg) {
                      pd.dismiss();
  
                      if (foundAdresses.size() == 0) { // if no address found,
                          // display an error
  //                          
  //                           p = new GeoPoint((int) (foundAdresses.get(0).getLatitude() * 1E6), 
  //                                      (int) (foundAdresses.get(0).getLongitude() * 1E6));
  //                          
  //                          
                          Dialog locationError = new AlertDialog.Builder(
                                  TravellogActivity.this).setIcon(0).setTitle(
                                  "Error").setPositiveButton(R.string.ok, null)
                                  .setMessage(
                                          "Sorry, your address doesn't exist.")
                                  .create();
                          locationError.show();
  
                      } else { // else display address on map
                          for (int i = 0; i &lt; foundAdresses.size(); ++i) {
                              // Save results as Longitude and Latitude
                              // @todo: if more than one result, then show a
                              // select-list
                              Address x = foundAdresses.get(i);
                              latit = x.getLatitude();
                              longi = x.getLongitude();
                          }
                          navigateToLocation((latit * 1000000), (longi * 1000000),myMapView); // display the found address
                      };  
  
          return  ;
  
      }
  
                  private void navigateToLocation(double latitude, double longitude,
                          MapView myMapView) {
                      // TODO Auto-generated method stub
                       p = new GeoPoint((int) (foundAdresses.get(0).getLatitude() * 1E6), 
                              (int) (foundAdresses.get(0).getLongitude() * 1E6));
                      MC.animateTo(p);
  
                      myMapView.invalidate();
  </code></pre>
  
  <p>MyLocationOverlay class</p>
  
  <pre><code>protected class MyLocationOverlay extends com.google.android.maps.Overlay {
  
      @Override
      public boolean draw(Canvas canvas, MapView myMapView, boolean shadow, long when) {
          Paint paint = new Paint();
  
          super.draw(canvas, myMapView, shadow);
          // Converts lat/lng-Point to OUR coordinates on the screen.
          Point myScreenCoords = new Point();
          myMapView.getProjection().toPixels(geoPoint, myScreenCoords);
  
  
          Point Screencoords = new Point();
          myMapView.getProjection().toPixels(p, Screencoords);
  
          paint.setStrokeWidth(1);
          paint.setARGB(255, 255, 255, 255);
          paint.setStyle(Paint.Style.STROKE);
  
          Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.marker);
  
          canvas.drawBitmap(bmp, myScreenCoords.x, myScreenCoords.y, paint);
          canvas.drawText("I am here...", myScreenCoords.x, myScreenCoords.y, paint);
  </code></pre>