百度地图第一波

使用方法在官方网站写的很明白,基本不需要再多说,参见 http://lbsyun.baidu.com/index.php?title=androidsdk/guide/buildproject 

本文只记录人使用中出现的问题

1. No implementation found for long com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create()
  解决:
这个问题 目前碰到, 有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());
        }
2.Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK assets/Icon_start.png
    File1: D:\Android\czh\CTM\Android_CTMSystem\CTMSystem_2016_03_30_CJH\app\libs\BaiduLBS_Android.jar
    File2: D:\Android\czh\CTM\Android_CTMSystem\CTMSystem_2016_03_30_CJH\app\libs\baidumapapi_map_v3_7_3.jaqi(不属于主要错误可忽略)


其实我想说,以上问题竟然一上午没解决 ,中午回来吃个饭就好了,文件没动呢..................按照官方指南说的配置了权限申请、meta、在application中初始化,在布局文件中添加布局, so文件如下放置或者放在main->jniLibs文件夹都可以运行,jar文件有7个  官网下载里有的!7个会报错

下午不论我用什么数据申请key  都用不了,只能加载地图网格,不能显示地图信息(默认显示天安门周边),一下午都没搞定,晚上看到了百度的工程师回答了我的问题,让我自己一看log日志,我才发现是这样的  然后我检查了一下(存放appkey的)位置,跟官方文档对比后,发现我放错位置了,应该放在application中!太粗心了;另外还有个提示是“app被用户禁用”,指的是APP控制台里的app被删除了,在创建一个就是了;

3-android百度地图自动定位失败问题,如果你的项目能正常跑 且能使用检索功能 ,请看开发工具了log日志,关于自动定位的日志格式如下: time : 2016-04-18 10:30:23
                                                                        error code : 162
                                                                        latitude : 4.9E-324
                                                                        lontitude : 4.9E-324
                                                                        radius : 0.0
                                                                        locationdescribe : null 

这个errorcode 162 官方说的是so文件出了问题,加载失败,我仔细研究、实践了走之后解决了。

原因:在官网下载时,官网有个一键下载和自定义下载,我的习惯是默认一键下载是下载所有的,没想到一键下载里面不含定位导航和全景图(如图)

百度地图第一波_第1张图片

,我觉得大多数人都有我这样的习惯吧!!解决方案:最后我就进入自定义下载,选择了所有(8个)的开发包,下载,最终直接把armeabi文件夹放到项目的main\jniLibs文件夹下(其他位置自行测试!),build->run,问题解决!(没有操作lib的jar包,因为我已经导入过了,没缺少)

百度地图第一波_第2张图片

 

4-两人以上开发时 ,应该使用同一个debug.keystore,否则报错   http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=85103&extra=page%3D1

关于key验证不通过反馈230问题更新(地图没显示),将具体负责百度地图的人开发环境里的debug.keystore复制给其他人替换即可  位置:
C:\Users\Administrator\.android\debug.keystore 



关于sha1(安全哈希值),发布版SHA1要用个人的数字证书提取,百度有  很简单;开发版SHA1  用sdk默认的debug.ketstore,从里面提取SHA1就行,包名别弄错  程序清单里的 和build.gradle里的包名可能不一致,以gradle文件中的为准!暂时就说这么多!欢迎评论交流!



你可能感兴趣的:(百度地图第一波)