我正在尝试启动一个简单的地图活动,使用osmdroid-android-3.0.7库显示一个地图和几个标记。该代码在旧版本(1.10)下工作。我收到以下错误: 02-03 15:14:30.574:E / AndroidRuntime(10277):引起:java.lang.IllegalArgumentException:找不到资源:marker_default.png
当我解压缩jar文件时,我可以在顶级目录中看到一个图标列表,其中一个确实是marker_default.png。这是代码的片段:
public class MapDisplay extends Activity
{
private MapView mapView;
private ResourceProxy resProxy;
private ItemizedOverlay<OverlayItem> locationOverlay;
public void onCreate(final Bundle savedState)
{
super.onCreate(savedState);
resProxy = new DefaultResourceProxyImpl(getApplicationContext());
final RelativeLayout rl = new RelativeLayout(this);
mapView = new MapView(this, 256);
mapView.setBuiltInZoomControls(true);
mapView.getController().setZoom(6);
mapView.getController().setCenter(new GeoPoint(51500000, 5400000));
rl.addView(mapView, new RelativeLayout.LayoutParams
(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
final ArrayList<OverlayItem> items = new ArrayList<OverlayItem>();
OverlayItem o1 = new OverlayItem("Location 1", "Comment",
new GeoPoint(51500000, 5400000));
o1.setMarker(getResources().getDrawable(R.drawable.icall));
items.add(o1);
OverlayItem o2 = new OverlayItem("Location 2", "Comment",
new GeoPoint(52500000, 5500000));
o2.setMarker(getResources().getDrawable(R.drawable.icall));
items.add(o2);
this.locationOverlay = new ItemizedIconOverlay<OverlayItem>(items,
new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>()
{
@Override
public boolean onItemSingleTapUp(final int index,
final OverlayItem item)
{
Toast.makeText(
MapDisplay.this,
"Item '" + item.mTitle + "' (index=" + index
+ ") got single tapped up", Toast.LENGTH_LONG).show();
return true; // We 'handled' this event.
}
@Override
public boolean onItemLongPress(final int index,
final OverlayItem item)
{
Toast.makeText(
MapDisplay.this,
"Item '" + item.mTitle + "' (index=" + index
+ ") got long pressed", Toast.LENGTH_LONG).show();
return false;
}
}, resProxy);
this.mapView.getOverlays().add(this.locationOverlay);
mapView.invalidate();
this.setContentView(rl);
}
}
当我尝试使用简单的叠加层并因此没有为标记设置任何图标时,我得到了相同的错误,除了它引用了person.png(该图标也在解压缩的jar文件中)。 我已经通过项目属性添加了jar文件,可以访问api就好了。
为什么我无法访问图标?
顺便说一句,我试图将图标复制到我的项目中,但我也遇到了同样的错误。
谢谢,Ania
答案 0 :(得分:2)
我遇到了同样的问题 - 在最新的jar(3.0.8)中,问题已解决。
答案 1 :(得分:0)
错误跟踪器中有一个issue,我认为它有一个解决方案。自己没有问题我提供自己的位图。我确实记得所有代理内容都令人困惑和麻烦。