高德地图找不到so文件的错误解决

来源:互联网 发布:电子相册制作软件 手机 编辑:程序博客网 时间:2024/05/21 19:28

概述

之前在集成高德地图时刚开始一切正常,后来项目中加了一个图片选择的框架后地图成了白屏,一开始没注意,后来经过仔细查找才发现原因.就是找不到高德自己的so文件了.
原因
一般我们会把需要的so文件放在jniLibs目录下.
android目前支持7种架构的cpu,所以一般会在jniLibs下放置几种对应cpu架构的文件夹(即使你只放一个,有些依赖的库也会使用多个).
这样就会出现一个问题,比如我用到了高德地图,而高德只提供了armeabi、arm64-v8a两种架构的so文件.而如果手机是另一种架构A,且jniLibs目录下有对应架构的文件夹A(或者引用的第三方库中有),就会导致高德找不到so文件,因为这个文件夹A里并没有高德对应平台的so文件!
简单来说,就是手机会首先找自己平台对应的so文件夹,有则使用对应的文件夹里的内容,如无对应的文件夹则使用armeabi下的.
解决方法
我们可以选择只打包armeabi文件夹.因为大多数x86平台的手机都会兼容armeabi的版本。 但是会发现就算这样做了在模拟器上面依旧装不上,那是因为模拟器没有兼容,但是他可以替换平台。如果是genymotion的话,需要安装一个转换为arm的插件。

在Android下的defaultConfig下配置

ndk{    abiFilters "armeabi"}

附上高德官方的文档,我记得当时处理的时候官方的文档里还没有这个问题的解决方案,今天写的时候一看已经加上了,没看明白的兄弟点这里继续 高德官方说明

0 0
原创粉丝点击