0
点赞
收藏
分享

微信扫一扫

Anroid 开发so文件找不到问题-例高德地图SDK提示com.autonavi.amap.mapcore.MapCore.nativeNewInstance问题


使用高德地图碰到此问题,纠结许久 记录在此,希望遇到相同问题的读者可以有所借鉴。

错误截图:


高德sdk demo 是没有问题的,但集成到项目中就会有问题,根据网上解析是找不到so库,但库明明在的呀,高德未提供其它版本的库,全在这里了,见图:

Anroid 开发so文件找不到问题-例高德地图SDK提示com.autonavi.amap.mapcore.MapCore.nativeNewInstance问题_高德地图

导致问题的原因主要有两种:

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文件夹下是全的,见图:

Anroid 开发so文件找不到问题-例高德地图SDK提示com.autonavi.amap.mapcore.MapCore.nativeNewInstance问题_so文件_02


看到这里我突然明白了,原因就在这里,融云的库做为项目的依赖module 来的,最终于生成的 编译文件会有上面四个平台的文件夹,如果高德地图sdk,

找v7a的库真的是找不到,如果没有armeabi-v7a的话,哪么他会去找armeabi;但现在有,所以找不到也正常了;


解决方案,把下面这个图,保留和高德一样的文件夹,其它删除;或者在给高德加几个文件夹,把armeabi相应的文件拷贝过去。都可以解决问题;




举报

相关推荐

0 条评论