log提示信息为 No implementation found for long com.autonavi.amap.mapcore.MapCore.nativeNew
最近在写地图相关的app ,遇到这个问题.
问题出现的原因大概是so文件未导入或与对应jar不匹配;在一个就是so文件里的x86兼容问题;
解决办法 :
1. 下载与jar相匹配的jar。sdk下载网址:http://lbs.amap.com/api/android-sdk/down/
2. 只保留armeabi文件夹其他的全部删掉 ,或者在gradle文件中添加下面代码 (x86平台的手机会自动兼容armeabi版本)
splits {
abi {
enable true
reset()
include ‘armeabi’//只打包armeabi平台的,就算有其他文件夹也不管
}
}
最后由于我的项目里还引用了其他so文件 ,其他sdk需要多个平台的so文件. 所以将armeabi文件夹里的高德地图so文件 直接复制到其他文件夹.
gradle 文件中将上面代码替换 为:
defaultConfig { ndk { abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'arm64-v8a' } }