지도상에서 자신의 위치에서 가까운 버스정류장을 찾아주는 프로그램을 만들고 있습니다.
그런데 지도위에 마커올리려고 하면 자꾸 에러가 나버립니다.
일단 처음 실행후에 menu를 눌러 메뉴를 호출하고 그중에서 해당 버튼을 누르면
DB에 저장되어있는 정류장들을 조회해서 일정 거리안에 있는 버스정류장을 찾아서 지도상에 표시해주는 프로그램입니다.

소스코드는 이렇습니다.
/* 메인클레스 */
public boolean onOptionsItemSelected(MenuItem item){
        super.onOptionsItemSelected(item);
        switch(item.getItemId()){
            case(MENU_1):
                Resources r = getResources();
                List<Overlay> overlays = mapView.getOverlays();
                MyItemizedOverlay itemizedOverlay;
               
                Drawable marker = r.getDrawable(R.drawable.busstop);
                marker.setBounds(0, 0, marker.getIntrinsicWidth(), marker.getIntrinsicHeight());
                itemizedOverlay = new MyItemizedOverlay(marker);
               
                /* 가까운버스정류장조회 메뉴 */               
                TextView myLocationText;           
                myLocationText = (TextView)findViewById(R.id.myLocationText);
               
                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);
                Double lat1 = location.getLatitude();
                Double lng1 = location.getLongitude();                               

                Cursor station = mDbHelper.getAllEntries();
               
                if (station.moveToFirst()) {
                    do {
                        Double lat2 = station.getDouble(station.getColumnIndexOrThrow(BusDbAdapter.KEY_LAT));
                        Double lng2 = station.getDouble(station.getColumnIndexOrThrow(BusDbAdapter.KEY_LNG));
                        double dist = distance(lat1,lng1,lat2,lng2);
                        if (dist <= 0.7) {
                            lat2 = lat2 * 1E6;
                            lng2 = lng2 * 1E6;
                            GeoPoint geoPoint = new GeoPoint(lat2.intValue(), lng2.intValue());
                            OverlayItem overlayitem = new OverlayItem(geoPoint, "", "");
                            itemizedOverlay.addOverlay(overlayitem);
                        }
                    } while(station.moveToNext());
                }
                overlays.add(itemizedOverlay);
                return true;
}

/* MyItemizedOverlay 클래스 */
public class MyItemizedOverlay extends ItemizedOverlay<OverlayItem> {
    // 마커에 대한 정보를 가진 콜렉션
    private ArrayList<OverlayItem> items = new ArrayList<OverlayItem>();   
   
    public MyItemizedOverlay(Drawable defaultMarker) {
        super(defaultMarker);
    }

    public void addOverlay(OverlayItem overlay){
        items.add(overlay);
        populate();
    }
    @Override
    protected OverlayItem createItem(int index) {
        return items.get(index);
    }
    @Override
    public int size() {
        return items.size();
    }
}

<수정> Logcat 첨부합니다.
01-05 01:04:01.322: ERROR/AndroidRuntime(285): ERROR: thread attach failed
01-05 01:04:04.932: ERROR/ActivityThread(292): Failed to find provider info for com.google.settings
01-05 01:04:04.953: ERROR/ActivityThread(292): Failed to find provider info for com.google.settings
01-05 01:04:05.012: ERROR/ActivityThread(292): Failed to find provider info for com.google.settings
01-05 01:04:07.452: ERROR/MapActivity(292): Couldn't get connection factory client
01-05 01:04:11.932: ERROR/LocationMasfClient(52): getNetworkLocation(): accuracy is too high 25000
01-05 01:04:33.052: ERROR/AndroidRuntime(292): Uncaught handler: thread main exiting due to uncaught exception
01-05 01:04:33.251: ERROR/AndroidRuntime(292): java.lang.NullPointerException
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at kr.mashup.map.Mashup_Map.onOptionsItemSelected(Mashup_Map.java:313)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at android.app.Activity.onMenuItemSelected(Activity.java:2170)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:730)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:139)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:525)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at android.view.View.onTouchEvent(View.java:4179)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at android.widget.TextView.onTouchEvent(TextView.java:6534)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at android.view.View.dispatchTouchEvent(View.java:3709)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at android.os.Looper.loop(Looper.java:123)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at android.app.ActivityThread.main(ActivityThread.java:4338)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at java.lang.reflect.Method.invokeNative(Native Method)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at java.lang.reflect.Method.invoke(Method.java:521)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
01-05 01:04:33.251: ERROR/AndroidRuntime(292):     at dalvik.system.NativeStart.main(Native Method)
01-05 01:04:36.382: ERROR/NetworkLocationProvider(52): releaseCheckLocationLock: wake lock has already been released

이렇게 작성했습니다.
계속 프로그램이 에러가 나서 죽는데 무슨 이유일까요?
고수님들 알려주세요~!