«

Android百度地图导航部分报JNI相关错误

时间:2024-3-2 19:24     作者:韩俊     分类: Android


Android百度地图导航部分报JNI相关错误

-20150702补充说明:然而并没有什么卵用!问题已经解决整理中……
-20150703真正的解决办法:《百度地图中导航部分引擎初始化失败的解决办法》

吐槽部分

百度地图总的来说很好,但是导航部分的实在是有些烂。
烂的方面总的来说,有一下几点:

文档中的代码不能用。不能用你贴什么代码,不是拼写错误什么的,是类都找不到,API完全变了,也不更新手册,连个Hello World的代码都各种问题,新手怎么看?还不如只给Sample功能;

文档介绍不全,给一段代码,不知道放在什么地方,得猜。不要说有经验的能看明白。多贴两行不能死,熬夜猜你那傻X玩意会死的。再说人家地图和定位的部分为啥不这样,一看就明白?

工程配置基本没说,仅有的那点恐怕完全是从别的地方抄来的吧。要不是人家定位和地图的那部分说了,怎不知道怎么找这个错。

下面是问题:

在初始化引擎的时候报错,这部分代码如下:

BaiduNaviManager.getInstance().initEngine(this, getSdcardDir(),
                new NaviEngineInitListener() {
                    public void engineInitSuccess() {
                        // Toast.makeText(P1MainActivity.this, "引擎初始化成功",
                        // Toast.LENGTH_SHORT).show();
                        Log.w("map", "初始化成功");
                    }

                    public void engineInitStart() {
                        Log.w("map", "引擎启动");
                    }

                    public void engineInitFail() {
                        Log.w("map", "初始化失败");
                    }
                }, new LBSAuthManagerListener() {
                    @Override
                    public void onAuthResult(int status, String msg) {
                        String str = null;
                        if (0 == status) {
                            str = "key校验成功!" + msg;
                        } else {
                            str = "key校验失败, " + msg;
                        }
                        Log.w("map", str);
                    }
                });

代码和手册上的小有不同.

错误如下:

07-02 10:40:29.683: E/Jni_JniEngine(15803): ######## Java_com_baidu_AppTest_AppTest JNI_OnLoad 

各种尝试无效。
后来发现,其实这个错误,没有影响。因为给的导航Sample工程也报这个错,然后能运行成功。

已经处理的异常你写毛Error级别的日志啊!不知道百度有没有地方投诉!

其实更重要的是有个“初始化失败“的输出,也就是上面代码中

    public void engineInitFail() {
       Log.w("map", "初始化失败");
    }

这个函数打印的信息。
找到这个地方之后就抓狂了,为啥函数无参数?怎么出错的不知道,就知道出错了。可是这有什么用!

最后发现时工程配置的问题。血泪啊!
能够引起这个问题的方面很多。
如果你是从Sample功能Copy过来的那么清楚注意。

第一,AndroidManifest.xml中的packagename要改
第二,Eclipse项目的Java Build Path中的Libraries饮用的Jar包要全
第三,其中“Android Private Libraries“中应该配置Native Labrary Location,位置指向放so文件的那个文件夹,如下图:

第四,这玩意依赖于 appcompat_v7这个工程,你的在Projects中引用

最后,查看一下“Order and Export“里面,大致应该这样,里面common-lang和gson是我用的第三方jar,可以没有

然后就可以看到引擎初始化成功的输出了!

如果还解救不了你,那就职能靠自己了,顺便问候一下该问候的人。

        <p>版权声明:本文为博主原创文章,未经博主允许不得转载。</p>

标签: android

热门推荐