挖坑,待写。
————————————————
之前有做个一个接入谷歌地图的,后面发现还是需要用国内的地图。╮(╯▽╰)╭,记录下。
下载地址:
http://lbsyun.baidu.com/sdk/download?selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool,mapsdk_radar
很奇怪的一个问题是我访问百度的相关的开发者网站的时候挂代理速度较快。
下载包的时候要注意,包比较多,下错了包的话就用不了。所以要注意看具体哪个包有什么功能。我是对应的下载所需的包的。()
需要用到什么SDK就点进去下载对应的SDK,我是一个个功能地进行来看的。(注意,百度地图的包不能混包,那样会出错,所以用完要删。意思就是说如果要添加新的功能不能直接添加,要把之前的删掉才能添加)。
将下载后的文件放入下列目录在新建的目录src/main/目录下新建jniLibs目录中。
左边的一系列文件夹放入jniLibs目录下。
右边的jar包需要放入BaiDuMapDemo\app\libs目录下待导入。
设置gradle
将BaiduLAB_Android.jar作为File dependency导入
gradle自动更新。
这样,就表示jar包导入啦。
添加一个最基础的代码,按官方文档来做:
http://lbsyun.baidu.com/index.php?title=androidsdk/guide/hellobaidumap
结果就是这样啦~默认显示北京的地址。
好啦,后面我再写个实际应用的。
———————坑的分割线—————
参考链接:http://blog.csdn.net/y1scp/article/details/48130853
———————————我是错误的分割线———————————-
在此之间出现一个问题,具体如下。
看了下是因为android5.0版本导致的。
07-31 15:54:25.424 7498-7498/com.cc.baidumapdemo E/System: stat file error, path is /data/app/com.cc.baidumapdemo-1/lib/arm64, exception is android.system.ErrnoException: stat failed: ENOENT (No such file or directory)
07-31 15:54:25.664 7498-7498/com.cc.baidumapdemo E/NativeLoader: found libBaiduMapSDK_base_v4_3_2.so error
07-31 15:54:25.666 7498-7498/com.cc.baidumapdemo E/art: No implementation found for int com.baidu.platform.comjni.tools.JNITools.initClass(java.lang.Object, int) (tried Java_com_baidu_platform_comjni_tools_JNITools_initClass and Java_com_baidu_platform_comjni_tools_JNITools_initClass__Ljava_lang_Object_2I)
07-31 15:54:25.667 7498-7498/com.cc.baidumapdemo E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.cc.baidumapdemo, PID: 7498
java.lang.UnsatisfiedLinkError: No implementation found for int com.baidu.platform.comjni.tools.JNITools.initClass(java.lang.Object, int) (tried Java_com_baidu_platform_comjni_tools_JNITools_initClass and Java_com_baidu_platform_comjni_tools_JNITools_initClass__Ljava_lang_Object_2I)
at com.baidu.platform.comjni.tools.JNITools.initClass(Native Method) at com.baidu.platform.comjni.tools.a.b(Unknown Source) at com.baidu.platform.comapi.a.(Unknown Source)
at com.baidu.platform.comapi.a.a(Unknown Source)
at com.baidu.platform.comapi.c.a(Unknown Source)
at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source)
不知道是什么问题导致的。猜测是因为之前倒错了jar导致的?先试试重新建立一个工程。
依然报错。
找不到这个so文件,但是实际目录中是有的。
found libBaiduMapSDK_base_v4_3_2.so error
百度后发现,这个问题很常见,http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=130936,可能是so文件的问题。
所以,这次我只下一个基础so文件,但是还是报错,最后终于发现问题所在,官方文档有问题,在AS中接入的方法是错误的(后面过几天我去看发现官方文档修改了,但是改的依然很烂,这里我也要吐槽一下阿里的SDK文档,也是乱七八糟,更新不同步。因此在接入SDK的时候不能太相信开发文档,坑太多,因此在接入SDK的时候需要对接入SDK的方式有一个全面的了解)。
删去下列代码就能显了。老子一下午就这样过去了。。不得不吐槽百度的相关产品都是基于Eclipse来做比较方便的。。
因为Android Studio导入.so文件有两种方式,如果直接在libs目录下创建子目录armeabi放置.so文件,那么就必须在build.gradle中添加sourceSets {...}语句。
如果是在src/main中添加 jniLibs文件夹,就不需要添加了,添加了反而会报错。
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
解决办法:http://blog.csdn.net/baidu_33968826/article/details/53193739
问题二:
errorcode: 200 uid: -1 appid -1 msg: APP不存在
请仔细核查 SHA1、package与key申请信息是否对应,key是否删除,平台是否匹配
解决办法:http://blog.csdn.net/nijian81/article/details/50542481
设置后要把之前在手机上安装的app卸载掉,要重新安装才会生效,否则依然报错。(因为安装之后就不会检查签名了吧大概是这样猜测不能尽信)。然后就不会报错了。
问题三:
安装之后只显示格子不现实地图。
后面发现是api key不正确导致的,但是运行时也没有报错。
这个才是你所需的api key。我之前以为是申请的时候生成的安全码是所需key
我的心在流血。一下午就这样过去了。。
参考链接:
http://lbsyun.baidu.com/index.php?title=android-locsdk
http://blog.csdn.net/y1scp/article/details/49095729
//www.greatytc.com/p/440494f075e7
http://blog.csdn.net/yy1300326388/article/details/46422939(AS添加第三方库的6种方式)