Android Studio中用百度地图SDK做地图时遇到的一个问题

原创 2015年11月20日 18:53:54

在Android Studio中用百度地图SDK做地图时,可能会遇到这种情况:
做基本地图和标注物时,运行正常,可就是做定位的时候,初始化语句报错:
SDKInitializer.initialize(getApplicationContext());
报的错误如下:
java.lang.UnsatisfiedLinkError: Native method not found: com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create:()J
            at com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create(Native Method)
            at com.baidu.platform.comjni.map.commonmemcache.a.a(Unknown Source)
            at com.baidu.platform.comapi.util.f.b(Unknown Source)
            at com.baidu.platform.comapi.a.c(Unknown Source)
            at com.baidu.platform.comapi.c.a(Unknown Source)
            at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source)
            at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source)

            at com.jyq.baidumymaplocation.MainActivity.onCreate(MainActivity.java:29)
            at android.app.Activity.performCreate(Activity.java:5146)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1090)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2191)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2282)

解决思路:

在开发指南中是这样写的:

在相关下载里下载最新的库文件。将so文件的压缩文件解压出来,把对应架构下的so文件放入开发者自己APP的对应架构下的文件夹中(建议全部放入以提高程序兼容性),将locSDK_6.X.jar文件拷贝到工程的libs目录下,这样您就可以在程序中使用百度定位SDK了。
使用eclipse开发的开发者,只需要将SO的文件夹放到libs下即可;使用AndroidStutio的开发者除了上述操作,还需要在build.gradle中配置SO的使用,如下所示:
sourceSets {
        main {
    jniLibs.srcDirs = ['libs']
        }
}

我认为,可能是它直接把.so文件放在了libs下,所以要在build.gradle中配置,而如果我们是在src/main下新建了jniLibs文件,将包含.so文件的文件夹都放入了jniLibs中,所以加上开发指南中的那句话是会报错,因此去掉那句话,结果可以运行了!

基本知识:

在百度地图SDK中,baidumapapi_vX_X_X.jar和BaiduLBS_Android,有何不同??
baidumapapi_vX_X_X.jar 只是地图sdk的jar包,BaiduLBS_Android 是地图sdk与定位或导航sdk一起打包的,两个jar是有冲突的,
放不到一个工程里,如果只需要地图sdk下载baidumapapi_vX_X_X.jar即可,如果需要其他sdk,勾选多个sdk组合下载BaiduLBS_Android

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) 错误

ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 1816 Zygo...
  • wletv
  • wletv
  • 2013年03月25日 14:16
  • 3905

Error处理:遇见引入ViewPager包,编译不报错,运行报错ViewPager不存在问题

遇见引入ViewPager包,编译不报错,运行报错ViewPager不存在问题 今天遇到一个比较奇怪的问题:导入android.support.v4.view.ViewPager包,引入ViewPa...
  • netwalk
  • netwalk
  • 2013年07月23日 17:57
  • 6973

Android第三方集成之百度地图定位

先看看demo效果 效果 简介 前段时间写即时聊天,其中有一个功能是发送定位功能,所以就在网上看了一些视频和博客,实现发送定位的功能,第三方的东西都比较简单,直接拿来用就可以了,你不用知道他内...

配置、使用百度定位android sdk

导入库文件 在相关下载里下载最新的库文件。将so文件的压缩文件解压出来,把对应架构下的so文件放入开发者自己APP的对应架构下的文件夹中(建议全部放入以提高程序兼容性),将locSDK_6.X....

集成百度地图遇到的问题汇总

最近抽时间自己试着集成百度地图耍了下,顺便做做笔记,以备日后的使用,同时为新人做个参考: 1. 百度地图的显示问题,刚开始加载时,地图显示不出来,出现这个问题是因为在申请百度SDK秘钥是填写的bund...

Android studio 百度地图开发(2)地图定位

Android studio 百度地图开发(2)地图定位

百度地图API解决 android 6.0定位不了的问题

百度地图API解决 android 6.0定位不了的问题

百度地图SDK使用过程中的那些坑

使用跟demo相同的Key,并且联网成功,授权成功,但是在初始化地图的时候提示引擎初始化失败,解决方法:检查SDK中的资源文件mapapi.bundle是否导入,如果没有导入,导入即可。 由于百度地图...
  • fyanyan
  • fyanyan
  • 2015年10月16日 14:24
  • 3069

android 百度地图遇到疑难问题解决方案

因为百度开发的地图问题非常之多,并且没有很好的日志信息来提示你哪里出问题,经常满世界找人问也不知道原因所在。好吧,这都是百度惹得祸。百度地图用起来真心不爽,本来想吐槽android studio的,这...

Android Studio jar包冲突

利用如下的方式获取:dependencies { provided files(getLayoutLibPath()) provided files(getAndroidPath())...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Studio中用百度地图SDK做地图时遇到的一个问题
举报原因:
原因补充:

(最多只允许输入30个字)