最近一直帮导师写UI,30几个让我月底写完。。。虽然很赶,但是天天看着那UI就想吐。So还是忙里偷闲搞搞自己的事,因为一直想做一个LBS游戏,所以想做个小Demo出来验证一下这个想法的价值,但从来没做过带地图的游戏,于是第一步就是找地图插件,查了半天最终选择了百度地图的SDK,百度地图官网还提供专门的LBS游戏解决方案,所以准备试试看,尝试过程中遇到不少问题,未免以后遇到类似问题所以将他们都记录下来。

———————————————————分界线———————————————————————

待解决问题:

1.我是第一次用Android的SDK,完全小白无从下手,(是什么?怎么使用?)。

2.下载完SDK以后据说还要用Eclipse进行集成才能导入Unity使用(怎么导入Unity使用?)。

待完成目标:
1.下载百度地图Android SDK,并在Eclipse上通过虚拟设备运行出Demo。
2.在Eclipse中根据自己需求使用Android SDK,编写集成后导入Unity中使用。
———————————————————分界线———————————————————————
下面解决第一个问题并完成第一个目标,主要有以下几个步骤:
1.下载并安装Eclipse,配置环境且能够创建安卓工程,即Android Application。(因为我之前没用Eclipse做过安卓开发)
2.下载百度地图Android SDK,并申请密钥。
3.在Eclipse中运行百度地图Demo,并完成一个自己编写的Hello Map工程。
———————————————————分界线———————————————————————
这次记录第一个问题以及解决过程:
1)下载Eclipse,搭建安卓环境
主要一下几步:安装JDK->配置环境->安装Eclipse
安装包就这么俩东西:
1
配置环境:我的电脑->属性->高级->环境变量

2

选择下面系统变量的新建,在弹出的框内,

填入变量名:JAVA_HOME

变量值 填jdk的具体安装路径(比如D:\Java\jdk1.8.0_60)

同样新建

变量名   CLASSPATH

变量值   .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; (注意最前面有个点)

编辑Path

变量名:Path

变量值:;%JAVA_HOME%\bin  (点击编辑在后面加上这个值)

其实这里我没配环境变量,但是也没什么问题,不知道为什么,下面用命令行检测一下版本信息,如果有说明配置完毕。

 3
 2)申请密钥并下载百度地图Android SDK
首先解决第一个问题,登陆百度LBS开放平台官网。
4
准备下载百度地图Android SDK,但是说首先要申请密钥才能使用,点击申请密钥。

5

 点击申请密钥后会进入API控制台,但是先要认证个人开发者,这里需要身份证正反面照片就好,其他根据自己项目情况填写,大概3个工作日后会给反馈,之后就是创建应用以获取密钥了。应用名称随意填写,下面关键的两个是发布版SHA1和包名,Android SDK安全码的组成就是:SHA1+包名。

6

 查看SHA1和包名:
1.查看SHA1:
这里有详细的流程,分别包含Eclipse和Android Studio的配置方法,我用的Eclipse,查看方法如下。
7
2.包名:就是使用Eclipse创建Android Application时设置的Package Name,

8

 3.分别将SHA1和包名复制到上面就可以创建应用了,创建完成后就可以获得密钥:

9

 3)在Eclipse中运行百度地图Demo,并完成一个自己编写的Hello Map工程。
首先将百度地图Demo导入工程,然后右键点击工程->Run As Android Application;
第一次运行安卓程序需要建立一个虚拟设备:结果发现一个错误,上网查阅得知需要在SDK中安装几个文件。
10

打开Android SDK Manager又遇到这个问题,连接不到谷歌服务器。

 11
 然后我就思考是否需要翻墙解决,最终墙也翻了还是不行,就加了个Android群询问,虽然没问出答案,但是给了我思路,貌似是需要用到代理,于是又查了一番在Manager的Option中做如下修改:填入代理服务器:mirrors.neusoft.edu.cn(因为直接访问谷歌服务器对方会拒绝,所以用一个中间代理服务器,将请求发给代理服务器然后代理服务器再讲请求转发给谷歌服务器就OK了)

12

 下载好如下几个System Image包并安装:

1315

 安完以后可以正常创建虚拟设备了,但是64位机器会出现这个问题,提示选择X86的Image,但是选了X86的以后又会出现提示,说什么需要支持某种技术的CPU才能使用,扯到了硬件上就没办法了。于是我就选择了ARM V7a,可以创建了,不过运行起来非常慢。。还是建议真机测试。
 14
 
完事具备,下面开始测试是否能运行百度地图SDK的Demo(注意这里要将之前申请好的AK赋值到工程里的AndroidManifest.xml文件中,否则Key验证失败)

 16
 4)配置文件并完成一个自己编写的Hello Map工程
1.配置环境:
这里是详细的配置方法:
我这里记下我理解的步骤:
将下载好的Android SDK地图中的libs导入到你的工程项目中(官方教程里写的很模糊,libs文件夹里也不并非像它描述那样只有那几个文件),就是下面这个整个文件:
 17

工程目录如图:

 18
2.第一个Hello Map:
上一步配置好了工程,下面在我们的工程中添加一些必须的信息:
(1).在AndroidMannifest中添加开发密钥:
<application><meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="开发者 key" /></application>
 (2).添加应用所需的权限:
 <usespermission 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" />
(3).打开工程目录下的res/layout文件夹下的activity_main.xml并添加:(添加在RelativeLayout标签内部)
 <com.baidu.mapapi.map.MapView
    android:id="@+id/bmapView"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:clickable="true" />
 (4).在我们自己工程的包下的MainActivity.java中初始化SDK引用的Context全局变量并创建地图Activity,管理地图生命周期。(红框中为自己添加的)
19
5.连接真机进行测试:(第一次没成功,只有网格不显示地图,查了一下是因为AK包名问题,结果自己查看包名都是对的,反复检查最后发现原来是因为AK是很久前创建的SAH1不一样,修改以后成功)
20
 下一步开始解决集成并导入Unity的问题。