Android百度地图开发之旅(一) 环境配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/IT_ZJYANG/article/details/53619459

前言


现在的APP很多都会带有定位需求,本篇系列主要记录如何将百度地图SDK集成到项目中去,想要实现百度地图提供的功能,需要在百度地图官网注册开发者账号并且创建你的应用,获得所需要的key,将key填写到工程中并且导入相应的SDK文件,实现我们想要的定位功能。




环境配置


1.创建应用

先进入到官网的API控制台,点击创建应用



创建应用需要输入应用的SHA1码和包名




SHA1码其实就是安全码,如何查看应用的SHA1码:

(1)首先要为应用生成签名文件(jks文件),在AndroidStudio中点击菜单栏Build->Generate Signed APK,点击点击Create New为当前应用生成一个签名文件


(2)填写如图几个主要信息即可,点击OK,即生成密钥文件,在刚才指定的目录下即可看到该文件


(3)打开cmd命令窗口,登录到上一步的jks文件所在的路径下(例如此处我的jks是放在E盘根目录)


(4)输入命令:keytool -list -v -keystore xxx.jks  (注:这里的xxx.jks填写的就是你的jks文件名),回车之后输入你刚才设置的密码,再次回车即可看到对应的SHA1信息:



如何查看包名:

包名可在app的gradle文件或者AndroidMainfest.xml文件中查看

AndroidMainfest.xml中查看:


gradle中查看:



输入以上信息,点击提交之后,即可在“查看应用”中,看到刚才创建的应用,以及对应的AK值:




2.下载百度地图SDK

下载地址:http://lbsyun.baidu.com/sdk/download

选择所需要的业务功能,下载下来的SDK目录:




3.将SDK导入工程

将百度地图SDK目录下的所有jar包复制到工程app目录下的libs文件夹中:



接着在app的gradle文件中的dependencies节点下添加以下代码编译这几个jar包:

compile files('libs/baidumapapi_base_v4_0_0.jar')
compile files('libs/baidumapapi_cloud_v4_0_0.jar')
compile files('libs/baidumapapi_map_v4_0_0.jar')
compile files('libs/baidumapapi_radar_v4_0_0.jar')
compile files('libs/baidumapapi_search_v4_0_0.jar')
compile files('libs/baidumapapi_util_v4_0_0.jar')



在src->main文件夹下新建一个jniLibs文件夹,将百度地图SDK目录下的所有so库复制到jniLibs文件夹下:





4.配置AK码/添加所需权限

在AndroidMainfest.xml中添加如下代码:



添加权限:

<uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />



5.在Application中初始化SDK




6.设置debug版和release版签名一致

此时直接运行应用,可能会发现应用没有崩溃,然而地图且显示不出来只有网格,并且控制台还爆出如下错误:

Authentication Error errorcode: 230 uid: -1 appid -1 msg: APP Scode码校验失败

这是因为刚才配置的SHA1码是release版,也就是发布版,而在AndroidStusio直接run出来的版本是debug版,也就是开发版,所以此时只有在通过正式签名打包出来的apk安装到手机上才会有地图显示出来,可是总不可能每次调试都要打包一个签名的正版Apk来测试吧,那如何使得开发版也能直接显示出来呢?

可以在app的gradle文件中进行配置:

(1)先在android节点下添加signingConfigs节点,里面的属性设置与之前打包正式签名文件(Generate Signed Apk)时填写的要一致:


(2)然后在buildTypes节点下设置debug版和release版都使用该config:





HelloMap示例

在你所要展示的Activity的布局文件中添加:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.baidu.mapapi.map.MapView
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </com.baidu.mapapi.map.MapView>

</LinearLayout>


MapView是百度SDK提供的显示地图的控件,直接使用便可显示出最基本的地图效果


这次直接run,效果就出来了:





猜你喜欢

转载自blog.csdn.net/IT_ZJYANG/article/details/53619459