当下高德地图jar版本为3.4.0。
使用高德地图碰到此问题,纠结许久 记录在此,希望遇到相同问题的读者可以有所借鉴。
错误截图:
高德sdk demo 是没有问题的,但集成到项目中就会有问题,根据网上解析是找不到so库,但库明明在的呀,高德未提供其它版本的库,全在这里了,见图:
导致问题的原因主要有两种:
1、so文件操作不当问题。可能是so文件与jar不匹配,也可能是so文件未导入。
解决办法:
下载与jar相匹配的jar。sdk下载网址:http://lbs.amap.com/api/android-sdk/down/
2、由于在X86手机上运行,而此时高德地图官网并未发布X86的so文件,导致应用崩溃。
(注:android4.4之后的大部分机型都是X86的)
解决办法:
只保留armeabi文件夹,其他的统统删掉,因为大多数x86平台的手机都会兼容armeabi的版本。但是会发现就算这样做了在模拟器上面依旧装不上,那是因为模拟器没有兼容,但是他可以替换平台。如果是genymotion的话,需要安装一个转换为arm的插件。
以上方法都不好用:
项目中用到了融云的SDK,我发现它libs文件夹下是全的,见图:
看到这里我突然明白了,原因就在这里,融云的库做为项目的依赖module 来的,最终于生成的 编译文件会有上面四个平台的文件夹,如果高德地图sdk,
找v7a的库真的是找不到,如果没有armeabi-v7a的话,哪么他会去找armeabi;但现在有,所以找不到也正常了;
解决方案,把下面这个图,保留和高德一样的文件夹,其它删除;或者在给高德加几个文件夹,把armeabi相应的文件拷贝过去。都可以解决问题;