Android 集成百度地图服务和驾车导航jar包冲突、驾车导航引入armeabi-v7a平台

项目中有用到百度地图覆盖物标记、地理编码、POI搜索、点聚合、定位等百度地图提供的服务,最近领导要求再加入驾车导航服务,到百度地图官网下载DEMO,参照百度地图官方提供的驾车导航Demo将libs文件夹下的jar包都复制到项目中发现有jar冲突了,最后比对发现BaiduLBS_Android.jar中已经包含了部分导航demo中的jar文件,那么去掉这些重复的jar包就可以了,处理完这个之后还有一个armeabi与armeabi-v7a不兼容问题也需要处理。

1、解决百度地图服务以及驾车导航jar包冲突

原本导航Demo中libs文件下jar包如下:

Android 集成百度地图服务和驾车导航jar包冲突、驾车导航引入armeabi-v7a平台_第1张图片

去除jar冲突后需要引入的jar包如下:

Android 集成百度地图服务和驾车导航jar包冲突、驾车导航引入armeabi-v7a平台_第2张图片

1、解决百度地图驾车导航不提供armeabi-v7a平台so,armeabi与armeabi-v7a不兼容问题

jniLibs下so文件的兼容处理,如果项目用的so是armeabi平台下的,那么复制导航demo中的so文件到项目中就可以

Android 集成百度地图服务和驾车导航jar包冲突、驾车导航引入armeabi-v7a平台_第3张图片

问题来了如果so平台不是armeabi,而是armeabi-v7a,像我们用了腾讯云IM他们只提供了armeabi-v7a平台的so,这个时候要去兼容啊,我的做法是这样的:

1、首先将上面DEMO中提供的armeabi平台下的三个so文件复制到,项目中armeabi-v7a平台下

2、将导航DEMO中libs下的NaviTts.aar和onsdk_all.aar复制修改后缀名为zip,当做压缩文件然后解压缩

Android 集成百度地图服务和驾车导航jar包冲突、驾车导航引入armeabi-v7a平台_第4张图片

打开解压缩后的onsdk_all文件夹

Android 集成百度地图服务和驾车导航jar包冲突、驾车导航引入armeabi-v7a平台_第5张图片

打开jni文件夹将armeabi文件夹下的所有so文件复制到项目项目中armeabi-v7a平台下

Android 集成百度地图服务和驾车导航jar包冲突、驾车导航引入armeabi-v7a平台_第6张图片

同样的操作解压缩后的NaviTts文件夹,打开jni文件夹将armeabi文件夹下的所有so文件复制到项目项目中armeabi-v7a平台下

注意:一定要加入这两个so文件,不能导航语音播放没有声音

Android 集成百度地图服务和驾车导航jar包冲突、驾车导航引入armeabi-v7a平台_第7张图片

最后项目中armeabi-v7a平台下关于百度地图服务、驾车导航相关的so文件如下:

Android 集成百度地图服务和驾车导航jar包冲突、驾车导航引入armeabi-v7a平台_第8张图片

 

你可能感兴趣的:(Android,百度地图)