您的位置:首页 > 数据库 > Memcache

No implementation found for int com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Creat

2016-11-11 16:34 501 查看

AndroidStudio使用百度地图出现初始化错误:SDK”No implementation found for int com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create() “

这个问题一般是在使用AndroidStudio时才遇到的.

今天在工作中遇到了一个奇怪的问题,项目中需要使用百度地图SDK和定位SDK,我先集成了百度地图SDK,开发文档中说明了不同平台的SO文件可以放在project/module/src/main/jniLibs文件平下,也可以放在项目根目录下的/libs文件夹下(也就是projects/libs).

而AndroidStudio默认是会在project/module/src/main/jniLibs目录下加载so库的,所以需要注意的是后者(放在project/libs目录下)需要在gradle文件中声明so库的寻找位置,配置如下:声明要在Libs目录下加载so库.

android {
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}


接着集成了定位SDK,需要注意,这里就开始出现问题了!!!

开发文档中并没有说明如果需要使用多个SDK,需要把不同平台的so库放在一个文件夹下!,也就是说如果你把百度地图SDK放在了libs文件夹下,把定位SDK放在了jniLibs文件夹下,这样会出现问题的.也就会出现错误如下

java.lang.NoSuchMethodError: No direct method (Lcom/baidu/lbsapi/auth/LBSAuthManager;

或者出现如题所描述的错误!

所以我们需要做的是把要集成的多个 SDK的so库放在一个文件夹下,如果不是要project/module/src/main/jniLibs下就需要在gradle中声明,上面已经说了.这样就会全部加载了.

附参考链接(需要翻强):https://www.shaneenishry.com/blog/2014/08/17/ndk-with-android-studio/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sdk 百度地图
相关文章推荐