05-08:使用百度SDK的步行/骑行导航出现的错误

一开始我是跟着官方的文档这样写的,我就发现stPt()和endPt()方法是划线的,我也没搭理。

        bikingNavigation.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(destLocation == null) {
                    Toast.makeText(MainActivity.this, "请先选择目的地", Toast.LENGTH_SHORT).show();
                    return;
                }
                BikeNavigateHelper.getInstance().initNaviEngine(MainActivity.this, new IBEngineInitListener() {
                    @Override
                    public void engineInitSuccess() {
                        //初始化成功回调
                        LatLng startPt = new LatLng(40.047416,116.312143);
                        LatLng endPt = new LatLng(40.048424, 116.313513);
                        BikeNaviLaunchParam bParam = new BikeNaviLaunchParam().stPt(startPt).endPt(endPt);
                        BikeNavigateHelper.getInstance().routePlanWithRouteNode(bParam, new IBRoutePlanListener() {
                            @Override
                            public void onRoutePlanStart() {
                                //执行算路开始的逻辑
                            }

                            @Override
                            public void onRoutePlanSuccess() {
                                //算路成功,跳转到诱导页面
                                Intent intent = new Intent(MainActivity.this, BNaviGuideActivity.class);
                                startActivity(intent);
                            }

                            @Override
                            public void onRoutePlanFail(BikeRoutePlanError bikeRoutePlanError) {
                                Toast.makeText(MainActivity.this, "导航算路失败", Toast.LENGTH_SHORT).show();
                            }
                        });
                    }

                    @Override
                    public void engineInitFail() {
                        Toast.makeText(MainActivity.this, "骑行导航初始化失败", Toast.LENGTH_SHORT).show();
                    }
                });
            }
        });

然后运行的时候,点击按钮发现会闪退,错误是这样的:

com.baidu.mapapi.bikenavi.controllers.UnsupportedBikeNaviException: BDMapSDKException: startNode or endNodeInfo cannot be null
        at com.baidu.mapapi.bikenavi.BikeNavigateHelper.routePlanWithRouteNode(BikeNavigateHelper.java:145)
        at com.example.baidumap.MainActivity$7$1.engineInitSuccess(MainActivity.java:323)
        at com.baidu.mapapi.bikenavi.controllers.a.b.a(BikeNaviManager.java:67)
        at com.baidu.platform.comapi.walknavi.c.c.handleMessage(WNaviEngineManager.java:122)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:201)
        at android.app.ActivityThread.main(ActivityThread.java:6810)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

说我地点的信息是空的,这就很纳闷了,你叫我这样写的啊。然后我机智地发现有这么两个方法:endNodeInfo()和startNodeInfo():


新的方法

就尝试着创建两个BikeRouteNodeInfo对象:

LatLng startPt = new LatLng(40.047416,116.312143);
LatLng endPt = new LatLng(40.048424, 116.313513);
BikeRouteNodeInfo startNode = new BikeRouteNodeInfo();
startNode.setLocation(startPt);
BikeRouteNodeInfo endNode = new BikeRouteNodeInfo();
endNode.setLocation(endPt);
BikeNaviLaunchParam bParam = new BikeNaviLaunchParam().startNodeInfo(startNode).endNodeInfo(endNode);

接着就运行一下,就OK了。

然后步行导航的时候,有开始闪退了,可恶啊:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.baidumap/com.example.baidumap.WNaviGuideActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2946)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:201)
        at android.app.ActivityThread.main(ActivityThread.java:6810)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
        at com.baidu.platform.comapi.walknavi.g.c.ad.<init>(UIScaleLevel.java:27)
        at com.baidu.platform.comapi.walknavi.g.c.c.<init>(UIPanel.java:220)
        at com.baidu.platform.comapi.walknavi.g.a.H(WalkUIController.java:882)
        at com.baidu.platform.comapi.walknavi.g.a.<init>(WalkUIController.java:346)
        at com.baidu.platform.comapi.walknavi.b.b(WNavigator.java:589)
        at com.baidu.mapapi.walknavi.controllers.a.a.a(WalkNaviManager.java:189)
        at com.baidu.mapapi.walknavi.WalkNavigateHelper.onCreate(WalkNavigateHelper.java:344)
        at com.example.baidumap.WNaviGuideActivity.onCreate(WNaviGuideActivity.java:20)
        at android.app.Activity.performCreate(Activity.java:7224)
        at android.app.Activity.performCreate(Activity.java:7213)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2926)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:201) 
        at android.app.ActivityThread.main(ActivityThread.java:6810) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873) 
2020-05-08 02:09:49.611 723-723/? E/lowmemorykiller: Error writing /proc/28508/oom_score_adj; errno=22

我也不知道为什么骑行导航不会,步行导航会。然后网上查了一下,发现有人在百度地图的贴吧反映过这个问题。本来官方更新日志中2019.9.23的v6.0.0版本中应该修复了的步骑行的findViewById的crash问题,我用的是最新的版本,按理没问题的。后来的楼主给出的答案是:最新的SDK中,步骑行导航还不能兼容Android10,诱导页面必须继承的是Activity而不能是AppCompatActivity。


AppCompatActivity --> Activity
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355