百度地图路径规划:BDMapSDKException: marker‘s icon can not be null
项目场景:
通过Android Studio调用百度地图SDK,进行两点之间路径规划,或者进行导航、POI检索。
问题描述
点击Overlay.java:num,定位到 .icon() :
if (step.getEntrance() != null) {
overlayList.add((new MarkerOptions())
.position(step.getEntrance().getLocation())
.rotate((360 - step.getDirection()))
.zIndex(10)
.anchor(0.5f, 0.5f)
.extraInfo(b)
.icon(BitmapDescriptorFactory
.fromAssetWithDpi("Icon_line_node.png")));
}
点击OverlayManager.java:72,定位到以下代码:
List<OverlayOptions> overlayOptions = getOverlayOptions();
验证了上面的Overlay类在覆写此方法时出现的错误
因此点击 BikingRouteSearchDemo.java:270 时定位到的代码是
overlay.addToMap();
因为overlay在实例化时调用getOverlayOptions(); 时出错,所以此处无法进行 .add() 方法。
解决方案:
根本原因在于overlay类覆写getOverlayOptions()时出错,没有找到icon等相关资源,因此解决好icon的资源即可。
具体解决方案为:在app/scr/main下添加包含icon图片资源的assets文件,如图所示:
具体的assert文件可以从百度地图提供的Demo中拷贝。