android studio 百度地图 .so文件错误 完美解决

来源:互联网 发布:如何看融资融券数据 编辑:程序博客网 时间:2024/05/17 04:00

首先按照大部分的教程步骤,到百度上下载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());
        }




 

0 0
原创粉丝点击