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

来源:互联网 发布:js indexof 用法 编辑:程序博客网 时间:2024/05/14 14:12

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

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

吐槽部分

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

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

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

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

下面是问题:

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

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,可以没有
这里写图片描述

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

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

0 0
原创粉丝点击