百度地图SDK安卓版的使用(上)
作者:互联网
搞了蛮久,终于搞清楚百度地图SDK安卓版的调用方法。记个笔记,防止以后自己忘了……
我目前用的是 Android Studio 3.5.1 版本
JAVA环境1.8.0_261 版本
build.gradle 版本 classpath 'com.android.tools.build:gradle:3.5.1'
gradle-wrapper.properties 版本 distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
我自己写的代码,或者用别人的代码,尽量多描述详细点,希望对广大新手小白友好点。当然老司机可以直接无视。
为了页面上点击功能偷懒,少写点代码,我用了butterknife黄油刀。你们写的时候随意吧。
这里说明一下:
导入的 BaiduLBS_Android.jar 包和各种 BaiduMapSDK.so 是有版本对应的,
1.6.0_33 版本的 BaiduLBS_Android.jar 包对应于全系列6_1_0版本的.so包
1.8.0_92 版本的 BaiduLBS_Android.jar 包对应于全系列6_4_0版本的.so包
互换互相调用会报错。
所以只要你能拿到官网下载的DEMO,或者成功跑起来别人的DEMO,记得同步复制粘贴人家同一版本的jar包和.so包。
排除这个坑都花了我蛮多时间……
加了.so包后记得加这两句
ndk { abiFilters("armeabi", "armeabi-v7a", "x86", "mips") }
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
然后来修改一下 AndroidManifest.xml 文件
加个联网权限 INTERNET。不加这个,连地名图标路线颜色都加载不出来!
<uses-permission android:name="android.permission.INTERNET" />
再加个扩展卡写入权限。不加这个,显示不了青山绿水卫星图,报错 open failed: EACCES (Permission denied)!
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
记得在 application 里面加个 <meta-data ,写入你的 API_KEY。
就算没有去百度官网申请API_KEY,也要写个双引号""空值上去,不然运行不了。写了空值至少能看看运行起来的地图。 http://lbsyun.baidu.com/apiconsole/key,有空可以去这里申请key。
然后去 activity_main.xml 文件里面加个 <com.baidu.mapapi.map.MapView 布局,填满整个屏幕就行了
然后回到 MainActivity 文件,在 setContentView(R.layout.activity_main) 这句话之前加入SDKInitializer.initialize(getApplicationContext())。
不加这句会报错 BDMapSDKException: you have not supplyed the global app context info from SDKInitializer.initialize(Context) function. 而且必写写在 R.layout.activity_main 前面, 或者写在整个安卓项目的BaseApplication类里面,保证一开始启动项目就先运行这句话,避免报错。
写到这里,终于可以真机运行项目了,默认进去就是北京地图,可以放大缩小,可以双指旋转地图。
到这里,我已经用足够少的代码,纯本地纯手打,跑起来百度地图了,应该没有人比我更少了!
这时候再把那注释掉的6行放出来,仅仅只是为了换个彩色卫星地图而已。
baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);//MAP_TYPE_SATELLITE卫星图
我目前的手机,安卓5.0、安卓9.0都能直接跑直接显示,至于其他版本的安卓系统,需要动态授权联网、授权SD卡读写权限的,你们自己添加判断吧。
下一篇文章在研究一下如何显示自己当前的定位和多个坐标点显示……
标签:jar,地图,gradle,安卓版,so,版本,报错,百度,SDK 来源: https://blog.csdn.net/HD6870/article/details/115354969