경로를 그리는 코드인데요~

이클립스상에 코드 오류는 없는데~ㅠ

안드로이드 에뮬실행시 바로 쏘리가 나와서 실행자체가 안되버리네요~ㅠ

어디가 오류가 난건지 좀 도움부탁드립니다!

DrawPath.java

package me.DrawPath.me;

import java.util.List;

import me.DrawPath.R;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.MyLocationOverlay;
import com.google.android.maps.Overlay;

import android.os.Bundle;

public class DrawPath extends MapActivity {
 MapView mapView;
 MapController mapController;
 GeoPoint geoPoint;
 
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        mapView = (MapView)findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);
        mapController = mapView.getController();
       
        geoPoint = new GeoPoint(37372005,126632843);
        mapController.setCenter(geoPoint);
        mapController.setZoom(14);
       
        List<Overlay> overlays = mapView.getOverlays();

        MyLocationOverlay myLocationOverlay = new MyLocationOverlay(this, mapView);
        overlays.add(myLocationOverlay);
        myLocationOverlay.enableMyLocation();
        mapView.getOverlays().add(new OverlayLine());
    }

 @Override
 protected boolean isRouteDisplayed() {
  // TODO Auto-generated method stub
  return false;
 }
}
---------------------------------------------------------------------------------------------------
OverlayLine.java

package me.DrawPath.me;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.StringTokenizer;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;

import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Point;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;

public class OverlayLine extends Overlay{
 String[] F; //rout:points 사이 모두 다 가져오는거
 String[] T; //x,y같이 잇는거(,)
 String[] XPoint;
 String[] YPoint;
 public static int[] pointx;
 public static int[] pointy;
 int xindex;
 int yindex;
 
 public void xmlParser(){
  XmlPullParser xpp = null;
  boolean isTrue = false;
  StringTokenizer st;
  int count = 0;
  int index = 0;
  int xindex = 0;
  int yindex = 0;
  try{
   //XmlPullParser xpp = null;
   URL text = new URL("http://map.daum.net/congsoa/route/getSearchRoute.service?x=418586&y=1076014&x=422198&y=1079004&method=realtime");

   InputStream in = text.openStream();
   XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
   factory.setNamespaceAware(true);
   xpp = factory.newPullParser();
   xpp.setInput(in, "utf-8");
  }
  catch(MalformedURLException e){e.printStackTrace();}
  catch(IOException e){e.printStackTrace();}
  catch(XmlPullParserException e){e.printStackTrace();}

  try{
   String sTag;
   String ItemName = "";
   int eventType = xpp.getEventType();
   while(eventType != XmlPullParser.END_DOCUMENT){
    switch(eventType){
    case XmlPullParser.START_DOCUMENT: break;
    case XmlPullParser.END_DOCUMENT: break;
    case XmlPullParser.START_TAG:
     sTag = xpp.getName();
     if(sTag.equals("rout:points")){isTrue = true;} break;
    case XmlPullParser.TEXT:
     if (isTrue) {
      count++;
      ItemName = xpp.getText();
         F[count] = ItemName;
         isTrue = false;
     }
     break;
    }
    eventType = xpp.next();
   }
  }
  catch(Exception e){
   //Toast.makeText(OverlayLine.this, " 실패:"+e.toString(), 4000).show();
  }
  for(int i=1;i<=count;i++){   
     st = new StringTokenizer(F[i]," ");
     while(st.hasMoreTokens()){
      T[index]=st.nextToken();
      index++;
     }
  }
   for(int j=0;j<index;j++){ 
    st = new StringTokenizer(T[j],",");
    while(st.hasMoreTokens()){
       if(j%2==1){
        YPoint[yindex] = st.nextToken();
        yindex++;
       }
       else{
        XPoint[xindex] = st.nextToken();
        xindex++;
       }
    }
   }
 }
 
 public void draw(Canvas canvas, MapView mapView, boolean shadow){
  super.draw(canvas, mapView, shadow);

  Paint paint = new Paint();
  paint.setStrokeWidth(3);
  paint.setARGB(255,255,0,0);
  paint.setAntiAlias(true);

  Point fromPixPoint = new Point();
  Point toPixPoint = new Point();
  
  int[] pointx = new int[xindex];
  int[] pointy = new int[yindex];
  
  int[] xp_trans = new int[xindex];
  int[] yp_trans = new int[yindex];
  
  for(int j=0; j<=xindex; j++){
   pointx[j] = Integer.parseInt(XPoint[j]);
   pointy[j] = Integer.parseInt(YPoint[j]);
   
   xp_trans[j] = (int) (pointx[j]/2.5/3500*1E6);
   yp_trans[j] = (int) (pointy[j]/2.5/3500*1E6);
  }
  
  for(int i=0; i<=yindex-2; i++){
   (mapView).getProjection().toPixels(new GeoPoint(xp_trans[i], yp_trans[i]), fromPixPoint); // 지리좌표를 화면상의 픽셀좌표로 변환
   (mapView).getProjection().toPixels(new GeoPoint(xp_trans[i+1], yp_trans[i+1]), toPixPoint);

   canvas.drawLine(fromPixPoint.x, fromPixPoint.y, toPixPoint.x, toPixPoint.y, paint);
  }
  
 }
}