首先按照大部分的教程步骤,到百度上下载SDK,记得一定点一键下载。教程地址:

http://developer.baidu.com/map/index.php?title=androidsdk/guide/hellobaidumap

然后打完代码之后点运行,结果会出现闪退,并出现error:

java.lang.UnsatisfiedLinkError: No implementation found for int com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create() (tried Java_com_baidu_platform_comjni_map_commonmemcache_JNICommonMemCache_Create and Java_com_baidu_platform_comjni_map_commonmemcache_JNICommonMemCache_Create__)

at com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create(Native Method)

这个问题 目前碰到, 有4个原因:

1. SDKInitializer 方法执行的位置不对

2. so 文件 没有放到 jniLibs 下(并且  armeabi   armeabi-v7a  mips x86 都要放一份)

不过即使 都放了 一份也不能保证 模拟器是 没有问题, 真机 目前 测试没有发现问题。

3. 是一个最隐秘,也是比较恶心的问题:

相应功能的开发资源的时候,你可能选择

基础地图   or  基础地图 + 计算 工具  or 基础地图+ 定位功能 + 计算工具,

不同组合下载下来的,通常 都已 两个文件,分别是:

BaiduLBS_Android.jar

libBaiduMapSDK_v3_4_0_X.so (X 代表 0  1 2 .....)

不同组合 的这个两个文件 都不同( 看起来jar 是同名) ,

如果你把 基础地图 的 jar   +  (基础地图 + 计算 工具) 的 sdk . so ,组合编译,就会出现上述问题

4. 模拟器运行 (即使 armeabi   armeabi-v7a  mips x86 放一份) 也无法解决, @百度  这个你们得看看吧??

无奈只有:

if (!"generic".equalsIgnoreCase(Build.BRAND)) {

SDKInitializer.initialize(getApplicationContext());

}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐