java.lang.NoClassDefFoundError:com.example.samplemap.CustomItemizedOverlay
我正在我的Android谷歌地图项目中使用mapviewballons,但我似乎在上面遇到了问题java.lang.NoClassDefFoundError:com.example.samplemap.CustomItemizedOverlay,java,android,google-maps,Java,Android,Google Maps,我正在我的Android谷歌地图项目中使用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 我已经梳理了代码,还没有找到这个
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());
}
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView MapView=(MapView)findViewById(R.id.MapView);
mapView.SetBuilTinZoomControl(真);
最终的MapController mc=mapView.getController();
mc.setZoom(16);
List mapOverlays=mapView.getOverlays();
//Drawable Drawable=this.getResources().getDrawable(R.Drawable.androidmarker);
Drawable Drawable=getResources().getDrawable(R.Drawable.marker);
CustomItemizedOverlay itemizedoverlay=新的CustomItemizedOverlay(可绘制,地图视图);
LocalGeoPoints loc=新的LocalGeoPoints();
对于(自定义覆盖项a:位置覆盖项){
项目化覆盖。添加覆盖(a);
}
添加(itemizedoverlay);
}
公共类CustomItemizedOverlay扩展了BallookItemizedOverlay{
私有ArrayList m_overlays=新ArrayList();
私有上下文c=null;
public CustomItemizedOverlay(可绘制的默认标记,MapView MapView){
超级(边界中心(默认标记)、地图视图);
c=mapView.getContext();
}
公共void addOverlay(CustomOverlayItem覆盖){
m_叠加。添加(叠加);
填充();
}
@凌驾
受保护的CustomOverlayItem createItem(int i){
返回m_覆盖。获取(i);
}
@凌驾
公共整数大小(){
返回m_覆盖。大小();
}
@凌驾
受保护的布尔onballoottap(int索引,CustomOverlayItem项){
Toast.makeText(c,“覆盖索引的onballoottap”+索引,
Toast.LENGTH_LONG).show();
返回true;
}
@凌驾
受保护的BallooOverlayView CreateBallooOverlayView(){
//将自定义引出序号视图与自定义覆盖项目类型一起使用:
返回新的CustomBallookOverlayView(getMapView().getContext(),GetBallookBottomOffset());
}
}
请将公共类自定义项转换为私有类如果您使用的是Eclipse,请检查您的.classpath文件。我按照此处的建议对classpath进行了更改。。。可能有两个或多个类具有相同的名称CustomItemizedOverlay
,一个在您的包中,第二个可能在您正在使用的任何jar
中..因此请检查..并删除多余的一个..如何检查?有什么简单的方法吗?