Android google-map プロジェクトで mapviewballons の使用に取り組んでいますが、上記に問題があるようです。
09-08 02:15:11.792: E/AndroidRuntime(484): FATAL EXCEPTION: main
09-08 02:15:11.792: E/AndroidRuntime(484): java.lang.NoClassDefFoundError: com.example.samplemap.CustomItemizedOverlay
私はコードをくまなく調べましたが、この問題がどこから来ているのかまだ正確にはわかりません. この問題を解決するために、あなたが余裕のある助けをいただければ幸いです。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
final MapController mc = mapView.getController();
mc.setZoom(16);
List<Overlay> mapOverlays = mapView.getOverlays();
// Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker);
Drawable drawable = getResources().getDrawable(R.drawable.marker);
CustomItemizedOverlay<CustomOverlayItem> itemizedoverlay = new CustomItemizedOverlay<CustomOverlayItem>(drawable, mapView);
LocalGeoPoints loc = new LocalGeoPoints();
for (CustomOverlayItem a : loc.overlayitems) {
itemizedoverlay.addOverlay(a);
}
mapOverlays.add(itemizedoverlay);
}
public class CustomItemizedOverlay<Item extends OverlayItem> extends BalloonItemizedOverlay<CustomOverlayItem> {
private ArrayList<CustomOverlayItem> m_overlays = new ArrayList<CustomOverlayItem>();
private Context c = null;
public CustomItemizedOverlay(Drawable defaultMarker, MapView mapView) {
super(boundCenter(defaultMarker), mapView);
c = mapView.getContext();
}
public void addOverlay(CustomOverlayItem overlay) {
m_overlays.add(overlay);
populate();
}
@Override
protected CustomOverlayItem createItem(int i) {
return m_overlays.get(i);
}
@Override
public int size() {
return m_overlays.size();
}
@Override
protected boolean onBalloonTap(int index, CustomOverlayItem item) {
Toast.makeText(c, "onBalloonTap for overlay index " + index,
Toast.LENGTH_LONG).show();
return true;
}
@Override
protected BalloonOverlayView<CustomOverlayItem> createBalloonOverlayView() {
// use our custom balloon view with our custom overlay item type:
return new CustomBalloonOverlayView<CustomOverlayItem>(getMapView().getContext(), getBalloonBottomOffset());
}
}