3天前遇到百度地图导航部分的问题,各种尝试,昨天以为解决了,还发了一篇 《Android百度地图导航部分报JNI相关错误》, 但是实际上没有解决。
真正的解决办法是这样的:
在给的导航部分的Sample工程中,有一个文件“assets/BaiduNaviSDK_Resource_v1_0_0.png”,这个文件才是最终的解决办法。把它copy到自己工程对应的位置上,一切就都好了。
上一篇中的jar和so包的配置还是需要检查的。
不过我非常好奇,为啥一个png能够解决导航时候的这个错误:
07-02 20:47:36.403: E/AndroidRuntime(32564): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030001
07-02 20:47:36.403: E/AndroidRuntime(32564): at android.content.res.Resources.getValue(Resources.java:1188)
07-02 20:47:36.403: E/AndroidRuntime(32564): at android.content.res.Resources.loadXmlResourceParser(Resources.java:2550)
07-02 20:47:36.403: E/AndroidRuntime(32564): at android.content.res.Resources.getXml(Resources.java:1046)
07-02 20:47:36.403: E/AndroidRuntime(32564): at com.baidu.navisdk.util.jar.JarUtils.inflate(JarUtils.java:366)
07-02 20:47:36.403: E/AndroidRuntime(32564): at com.baidu.navisdk.ui.widget.BNCommonProgressDialog.<init>(BNCommonProgressDialog.java:25)
07-02 20:47:36.403: E/AndroidRuntime(32564): at com.baidu.navisdk.ui.widget.RoutePlanObserver.showWaitProgressDialog(RoutePlanObserver.java:213)
07-02 20:47:36.403: E/AndroidRuntime(32564): at com.baidu.navisdk.ui.widget.RoutePlanObserver.update(RoutePlanObserver.java:255)
07-02 20:47:36.403: E/AndroidRuntime(32564): at com.baidu.navisdk.comapi.base.BNSubject.notifyObservers(BNSubject.java:69)
07-02 20:47:36.403: E/AndroidRuntime(32564): at com.baidu.navisdk.comapi.routeplan.BNRoutePlaner.b(BNRoutePlaner.java:951)
07-02 20:47:36.403: E/AndroidRuntime(32564): at com.baidu.navisdk.comapi.routeplan.BNRoutePlaner.setPointsToCalcRoute(BNRoutePlaner.java:1044)
07-02 20:47:36.403: E/AndroidRuntime(32564): at com.baidu.navisdk.BaiduNaviManager.a(BaiduNaviManager.java:388)
07-02 20:47:36.403: E/AndroidRuntime(32564): at com.baidu.navisdk.BaiduNaviManager.launchNavigator(BaiduNaviManager.java:300)
07-02 20:47:36.403: E/AndroidRuntime(32564): at com.baidu.navisdk.BaiduNaviManager.launchNavigator(BaiduNaviManager.java:418)
07-02 20:47:36.403: E/AndroidRuntime(32564): at com.hztech.roadmap.activities.P4QueryActivity.onPointClick(P4QueryActivity.java:128)
07-02 20:47:36.403: E/AndroidRuntime(32564): ... 14 more
看上去完全没有关系。
然后去看了一眼那个png,1.4M大。这就有问题了,一个png,1.4M大,难道百度内置了一个桌面么?
双击打开一下看看,结果提示png格式损坏。
格式损坏?难道是下载的问题?而且没有看见什么地方有这么大一个图片显示不出来!
遇到我,算baidu倒霉,这是后话。
然后我就用vi打开了一下这个文件:
“PK”开头的文件!这肯定不是png图片,不是格式损坏,是根本就不是啊,png应该是这样的:
看到了吧,开头的PNG和后面xml部分的图片信息,这才是png。
而且那个“PK”开头,难道真的当我不知道,这是大神Phil Katz的缩写,这厮创造了zip(或者说改造)。
难道是个zip,被硬改成png了么?不会这么龌龊吧?改回来看看吧。
改回来确实是个zip,能解压,解压之后是这样的:
这下能解释为啥报错了,这里是各种资源啊!
问题时,百度,导航那个哥们,你这么做真的好么,对得起谁呢?
PK大神的zip是这么用的么?还要顶一个png的名字?
为啥文档上不写?为啥lib包里没有?想不想让人用?
你们百度都是干这种勾当的?
源代码保护靠这个?
鄙视!
本文详细记录了解决Android百度地图导航问题的过程,通过深入分析一个1.4MB的大尺寸PNG文件,最终发现其中包含的关键资源解决了导航错误。文章探讨了为何一个看似无关的图片文件能解决技术难题,以及其内部结构的奥秘。
717

被折叠的 条评论
为什么被折叠?



