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>