您的当前位置:首页正文

高德地图导航报错

来源:要发发知识网

在运行高德地图的导航功能时,有部分手机会遇到找不到so包的错误。主要是在运行到

aMapNavi.addAMapNaviListener(this)

这句话的时候程序崩溃,报aMapNavi为空指针错误
在查看高德地图的官方API文档的时候,发现高德导航的SDK包只有armeabi包,可兼容不同手机平台运行,但是由于本身的项目中集成了极光还有讯飞等,这些SDK需要导入以下的目录。

Paste_Image.png
  • 主要是新建一个类库library,在项目中依赖这个类库,把与高德无关的需要导入多个目录的so文件放在类库中,主项目只保留armeabi包。所以项目的目录变为
更改后的项目目录.png

并且在主项目build.graldedefaultConfig中添加

ndk{
      abiFilters "armeabi"
}

gradle.properties文件中增加

android.useDeprecatedNdk=true

对依赖的类库的build.gradle文件也添加如下配置。

ndk {
    abiFilters "armeabi", "armeabi-v7a", "x86","arm64-v8a","mips","mips64","x86_64"
 }

结果程序就奇迹的跑起来了。