百度地图路径规划:BDMapSDKException: marker‘s icon can not be null

本文介绍了在Android Studio中使用百度地图SDK遇到的问题,包括两点间路径规划、导航和POI检索。在Overlay类中,由于找不到图标资源导致getOverlayOptions()方法出错,进而影响到overlay的.add()方法调用。解决方案是确保在app/src/main目录下创建assets文件夹,并将所需图标资源从百度地图Demo中复制过来,以解决资源未找到的错误。
摘要由CSDN通过智能技术生成

项目场景:

通过Android Studio调用百度地图SDK,进行两点之间路径规划,或者进行导航、POI检索。


问题描述

图中可以看出是icon为空导致bug
点击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中拷贝。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值