0

私はグーグルマップで作業しています...

私は次のアプリケーションを実行しましたが、正常に動作していましたが、突然動作しなくなり、最初からトレースしたところ、追加すると

 mapOverlays = mapView.getOverlays();

アプリケーションが動作しなくなります...

助けてください

public class MapGtugActivity extends MapActivity implements OnClickListener  {
MapView mapView ; 
MyLocationOverlay compass ; 
MapController controller ; 
Drawable drawable ; 
Drawable drawable2 ; 
List<Overlay> mapOverlays ; 
GeoPoint point1 ; 
GeoPoint point2 ; 
GeoPoint point3 ;
MapItemizedOverlay custom ; 
MapItemizedOverlay custom2 ; 
//List <GeoPoint> LGP ; 
 GeoPoint LGP[] = new GeoPoint[6] ; 
 Button AddLayers ; 

 int x , y ; 
 GeoPoint touchedpoint ;
 long start ; 
 long stop ;



   CharSequence[] items = {"Layer1", "Layer2"};
   boolean[] itemsChecked = new boolean[items.length];



/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    MapView mapview = (MapView) findViewById(R.id.mapview) ;
    mapview.setBuiltInZoomControls(true) ; 

    mapOverlays = mapView.getOverlays();




}

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

public void onClick(View v) {
    // TODO Auto-generated method stub

}

}

4

1 に答える 1

0

オーバーレイを追加した後でのみ、getOverlays を呼び出すことができます。その時点でnullpointerExceptionを返すと思います(onCreateで呼び出しているため)。getOverlays() が呼び出されたときに、それが取得するマップに定義されたオーバーレイがないためです。

于 2012-07-17T07:25:43.367 に答える