最近项目要求集成百度地图,我就去研究了一下百度地图SDK,当前的版本是: Android SDK v3_5_0_31. 由于官方给的demo是Eclipse的,Android Studio的demo可能在后面的更新版本中才会出现,我在使用Android Studio来开发百度地图的过程中也遇到了许多的曲折和困难,包括JAR包的位置,JAR包的引入,Key的生成等等。接下来会为大家做一下详细的讲解。
jar包引入和配置:
1.JAR的位置和引入
当我们新建一个工程后,到百度地图开发者平台把开发包下载下来
http://lbsyun.baidu.com/sdk/download
下载以后,会遇到一个问题:官方只给了一个Eclipse的存放指导,Android Studio是完全不一样的。
正确的存放位置是这样的:
首先在Project视图下(截图的左上角),将BaiduLBS_Android等三个jar包(有可能只有一个,看你开发包里面JAR包的数量了,一个也能用),复制粘贴在Libs文件夹下。
接下来是最重要的一步了,armeabi文件夹要放在哪里呢?是的,和eclipse不一样的地方就在这了。我们需要在main文件下新建一个jniLibs文件夹,然后将armeabi放在这个文件夹下,可以看到so文件也全部导进来了,成功。
然后为了为了让module能够使用百度地图,我们需要手动引入。
具体方法是:
1.File—>Project Structure进入如下页面
2.选择左侧最底下的app,点击上方最后一个Dependencies,然后点击最右侧绿色加号,选择第二个按钮file dependency,然后重复步骤依次添加Libs下那三个JAR包就可以了。
3.到第二步其实就可以,细心的同学如果想要检查是否导入成功,可以到build.gradle中查看,出现compile files…..就表示成功了。
key的申请:
这一部分我其实有点不太清楚,主要是对AS的签名机制不太清楚。但跟着我来弄一定能成功。
不想做这一步的同学可以直接做第二步,然后回复一下我能不能成功。
一:as生成签名
这一步,官方思路并没有给出需不需要做,但我还是做了。
按图上步骤来选择。
接下来会遇到这个,之前有用过的话就输入Password,不然直接关闭这个对话框。
接着出现新的对话框,点击create new….可以看到
第一个行点击框后面的…选择存放位置。
位置选好后就在File Name里面填写文件名称,jks为后缀。
最后是回到原来的界面,像填写注册信息一样地填写,第一个的password是你的keystore密码,第二个是你的key密码。
Alias是你的key的名称。
点击OK,完成注册,发布是注意有个下拉框选择用的是debug版本,而不是release版本。
好吧,这一步完成了,不知道有没有用,但我是做了,不想做的可以直接跳过执行第二步。
二、得到debug.keystore里的SHA1值
c盘Administrator下的.android目录下,输入
keytool -list -v -keystore debug.keystore(注意中间的空格)
输入密钥库口令,此处一般直接回车就可以了。如果以前设置过密钥库口令的就想想自己用的是什么密码了。
然后就可以看到证书指纹下的SHA1值了。
复制保存那个SHA1值在文本或word中就可以了。
**
三、申请key
**
这一步结合百度地图的开发指指南来进行,我提几个注意地方。
流程大概是这样的
在你有百度开发者账号的情况下(自行根据开发指南来申请),
进入api控制台
http://lbsyun.baidu.com/apiconsole/key/create
去创建应用,应用名称随意,安全码这个地方要特别注意,是SHA1;包名的形式。
SHA1码就是上面提到的那一个,每个人都不一样,比如我的是:22:40:39:C6:AC:B9:97:07:44……..
包名就是你创建的那个android studio工程的AndroidManifest.XML里面的,package=”com.maptest”,引号里面的内容。
综合起来的安全码就是
22:40:39:C6:AC:B9:97:07:44……..;com.maptest
分开sha1值和包名的只有分号,没有+号
申请成功后,就会有一个ak给你,ak就是开发者key
替换开发者key
进入到你的工程AndroidManifest.XML中,
把ak填进入value中,参考百度地图的演示demo慢慢来做就好了
地址在这:
http://developer.baidu.com/map/index.php?title=androidsdk/guide/hellobaidumap
做了相应的layout和activity中进行相应替换,就可以运行了。运行中如果出现203问题,即校验码出错,则表明你的开发者key(AK)问题,可以再看看我这篇博客,检查是否有什么地方遗漏了。
或者去开发者论坛找找相关答案,地址在这(里面有一个附件app比较有用,下载到手机,输入包名就可以得到SHA1值,可以检查一下我们得到的SHA1值是不是对的。当时我就是因为这个问题,程序跑不通的)
http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=85103&extra=page%3D1
具体的演示就参照百度开发者指南,
http://developer.baidu.com/map/index.php?title=androidsdk/guide/hellobaidumap
运行成功就能出现百度地图。