项目记录——为沙特客户Android开发Google地图应用

最近在给沙特客户所做的应用中需要用到地图,所以原来常用的百度地图就不能使用了,只好换成了Google地图。结果在开发过程中遇到了很多坑,折腾了不少时间终于搞定。这里特记录下之中的几个要点,让同学们有个参考。

一. 学会科学上网

这个属于搞Android的同学们必备的技能。我这里就不多说了。

二. 准备好必要的开发环境

1.首先你的AndroidSDK中需要安装好GoogleAPI和GooglePlay的镜像。

项目记录——为沙特客户Android开发Google地图应用_第1张图片

2.最方便的调试手段是使用模拟器,所以需要创建包含Google服务的模拟器镜像,当然模拟器运行时需要科学上网。


3.如果是使用真机测试,估计你需要折腾一下了,国内的所有行货手机都屏蔽了google服务。我的手机是华为Mate10,我花了很多功夫才在root之后成功装上了Google地图,其他手机没有测试过,所以不清楚。

三. 开始开发Google地图应用

第一步当然要先注册一个GoogleMapAPI的开发许可证。这里有2种创建方式

A.直接在项目中选择新建一个Google Map Activity,如图所示

项目记录——为沙特客户Android开发Google地图应用_第2张图片

Finish后会自动创建并打开一个资源文件google_maps_apo.xml注意后面括号中的dubug

文件内容如下

 复制红框中的地址到浏览器中打开开发许可key的控制台,如图所示创建一个项目

项目记录——为沙特客户Android开发Google地图应用_第3张图片

项目记录——为沙特客户Android开发Google地图应用_第4张图片

然后创建key,出现下图界面

项目记录——为沙特客户Android开发Google地图应用_第5张图片

复制红框中的key到刚才所打开的google_maps_apo.xml中替换 name为google_maps_key的字符串。这样你继续按文档编写代码即可。

但是这里要注意这是一个大坑。

所有代码编写完毕后运行,你会发现你的程序如果一切顺利的话在模拟器中是正常的,但是安装到真机后就会出现如下的问题:

项目记录——为沙特客户Android开发Google地图应用_第6张图片

屏幕上显示GooglePlay的服务需要更新。见鬼了。我折腾了好久才发现,使用谷歌服务的App如果要在真机上允许只能是release版本的。而上面的过程都是debug版本的。所以只能采用下面的B方案了。

如果有任何技术问题,欢迎加群523916260,里面有一群志同道合的小伙伴可以一起交流学习,还有有着10多年工作经验的大牛坐镇。

 

B. 创建release版本的app

a.首先你需要创建一个用于release版本的开发证书。可以在AndroidStudio中创建,如图:

项目记录——为沙特客户Android开发Google地图应用_第7张图片

这个过程我就不多说了。大家自行百度。

b.使用命令  keytool -list -keystoremykey.jks    查看证书的SHA1指纹,如图

项目记录——为沙特客户Android开发Google地图应用_第8张图片

记录下你的SHA1指纹

c.到https://console.developers.google.com这里,创建一个项目,如图

项目记录——为沙特客户Android开发Google地图应用_第9张图片

然后创建key,如图所示:

项目记录——为沙特客户Android开发Google地图应用_第10张图片

注意: 这里要填的包名要和你的manifests.xml文件中package的值一致。SHA-1的值就是你刚才复制的release证书的SHA1指纹。

d. 启用Google Maps Android API

项目记录——为沙特客户Android开发Google地图应用_第11张图片

项目记录——为沙特客户Android开发Google地图应用_第12张图片

e.然后得到了你需要的许可key.将其复制到manifest.xml文件中:


f.最后使用AS生成release签名的apk并安装到你的手机中,则大功告成。

项目记录——为沙特客户Android开发Google地图应用_第13张图片

项目记录——为沙特客户Android开发Google地图应用_第14张图片

最后的最后,这个方案在我的华为Mate10的手机上成功运行了,但是发给客户后,客户安装到一台中兴的手机上,怎么折腾都不行,最后换了一台三星的才成功,我也是要晕了,国内的GRW居然在沙特也能行???

未经授权禁止转载,如有需要,请联系作者,谢谢!

你可能感兴趣的:(程序猿,互联网,软件开发,java,大数据)