Android关于百度地图的开发心得(笔记一(配置与基本使用))
关于
最近新项目启动在即,想着公司的老项目中地图的使用(百度地图)的sdk已经比较老了,v4.3版本的。我今天去开发平台下载最新的已经是7_2版本了,有必要更新使用并记录。然后会大概有一个小系列记录,上一个系列的记录webview的使用,只写了一和二是因为我直接用了开源库一篇解决开发问题,有想法的可以看WebLoading开源库,支持https访问好了,闲话到此。
使用
第一步,下载sdk
首先我们到百度开发者平台下载一个Android的sdk,下载页面:,选择我们会使用的如地图、定位然后选择jar,选择开发包下载。然后将下载下来的压缩包解压后的lib中的BaiduLBS_Android.jar添加到我们项目中的lib下,并在lib下新建两个文件夹(armeabi与armeabi-v7a)并将我们下载解压对应文件夹下的内容copy过去:
我们还需要把上图中的BaiduLBS_Android.jar右键添加到library中, 在app目录下的build.gradle文件中android块中配置sourceSets标签,如果没有使用该标签则新增,详细配置代码如下:
sourceSets {
main {
jniLibs.srcDir 'libs'
}
}
还有就是我们定位可能会用到一些图标mark,在V5.1.0后被移除了,所以有需要的话,可以单独下载资源包,有使用的图片我们可以放到assets文件夹下。
地图sdk的混淆如下,需要项目中的build开启混淆才行,minifyEnabled true
具体操作这里不做解释了:
-keep class com.baidu.** {
*;}
-keep class vi.com.** {
*;}
-keep class com.baidu.vi.** {
*;}
-dontwarn com.baidu.**
以下为注意事项
地图SDK自v4.5.0起支持HTTPS协议,开发者可以通过setHttpsEnable(boolean isEnable);控制是否使用https,V5.3.2版本之前版本默认使用http协议;V5.3.2版本之后(包含)默认使用https协议。
如果使用默认的http协议,android9.0+禁止明文访问,所以会在使用的时候出现:
W/System.err: java.io.IOException: Cleartext HTTP traffic to **** not permitted
解决办法:
- 初始化时改用https请求(建议)
- targetSdkVersion 降到27以下
- 配置安全文件network_security_config.xml
配置文件方法:
首先在res/下新建一个xml文件夹,然后新建一个network_security_config.xml,然后里面键入:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
然后在Androidmanifest配置文件内的application中输入:
android:networkSecurityConfig="@xml/network_security_config"
第二步,申请appkey
这里我之前遇到一个问题就是,我申请的时候图省事,我只填了正式版(releas)的sha1值,debug版的没填,导致我打的包在调试的时候地图正常使用,打包之后就会出现地图白板问题(这个你们遇到的话大概率就是appkey的问题),然后我们进行申请。
打包之前,我们先把我们的debug的keystore位置定义一下:
signingConfigs {
debug {
storeFile file('F:/2021NewsProject/xxxx/debug.keystore')
storePassword 'android'
keyAlias = 'androiddebugkey'
keyPassword 'android'
}
}
我这里首先想把项目的debug和release版本包都打好,然后我用的keytool,没在terminal中操作。这里我在我的java目录下使用的如下:
C:\Program Files\Java\jdk1.8.0_152\bin
我们首先通过cd到这个文件:
cd C:\Program Files\Java\jdk1.8.0_152\bin
如下图:
然后输入:
keytool -list -v -keystore C:\Users\Administrator\.android\debug.keystore
然后输入默认的android
然后结果如图:
同样通过输入:
Java\jdk1.8.0_152\bin>keytool -list -v -keystore F:\2021NewsProject\xxx\dingyanApp.jks
输入密码获取到对应sha1值,输入到我们申请key的界面里面,然后输入包名,提交将我们创建应用获取到的appkey输入到androidmanifest.xml文件中如下:
<meta-data
android:name="com.baidu.lbsapi.API_KEY"