TQ210搭载Android 4.0.3测试Google Maps API V2(一.获取地图)

原创 2013年05月28日 15:34:18

TQ210搭载Android 4.0.3测试Google Maps API V2(一.获取地图)

 

硬件环境:tq210 v4开发板

运行环境:Android 4.0.3

开发环境: Eclipse Version: Juno Service Release 2,ADT 22,Android Sdk 22

 

参考文档:

这位老兄写的很好 有一个错误就是参看他的博客才解决的

中文版:

http://www.cnblogs.com/mengdd/archive/2013/01/01/2841390.html

 

Google官网指导手册

英文版:

https://developers.google.com/maps/documentation/android/start#installing_the_google_maps_android_v2_api

 

 

在写测试代码之前,你需要

1.                              Download and configure the Google Play services SDK. The Google Maps Android API is distributed as part of this SDK.

2.                              Obtain an API key. To do this, you will need to register a project in the Google APIs Console, and get a signing certificate for your app.

 

在    获取api key和下载sdk在上面的参考文档中都可以找到详细的操作步骤,这里就不啰嗦了.

 

具体实现:

1.打开eclipse,按下快捷键ctrl+n出现下图

  1. 选择Android Application Project点击Next

  1. 接下来一致选Next,直至Finish
  2. 修改activity_main.xml添加Map到布局文件中

改为:

<?xml version="1.0" encoding="utf-8"?>

<fragment xmlns:android="http://schemas.android.com/apk/res/android"

          android:id="@+id/map"

          android:layout_width="match_parent"

          android:layout_height="match_parent"

          android:name="com.google.android.gms.maps.MapFragment"/>
  1. 需要访问Google Play Service,所以添加必要的权限AndroidManifest.xml中加入
<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>

<!-- The following two permissions are not required to use

     Google Maps Android API v2, but are recommended. -->

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

 

:

添加WRITE_EXTERNAL_STORAGE能够添加缓存的地图数据到SDCARD中,加快地图显示速度

添加READ_GSERVICES能够访问基于Googleweb服务

  1. 添加api_keyopengl es version 2 的支持AndroidManifest.xml文件中加入

添加api_key

<meta-data

    android:name="com.google.android.maps.v2.API_KEY"

    android:value="your_api_key"/>

your_api_key换成你申请的api_key

注意:meta-data需要添加在Application标签中

例如我的

<meta-data

   android:name="com.google.android.maps.v2.API_KEY"

android:value="AIzaSyCBulkSx_lJGCDx-945JVqBB0CW38ahDhA"/>

 

添加openGL ES Version 2的支持

<uses-feature

        android:glEsVersion="0x00020000"

        android:required="true"/>
  1. TQ210开发板上运行

9.可是并没有显示地图反而报错

 

提示找不到com.google.android.gms.maps.MapFragment

参看参考文档中那位老兄写的出错提示

于是加入Google play services类库

操作如下:

a.Package Explorer空白区单击右键选择Import

      b.弹出对话框如下图选择Existing Android Code Into Workspace

c.点击Next如下图选择Browse

找到你的google-play-services_lib的源文件

一般是在你android sdk的安装目录的下面

android-sdk-windows\extras\google\google_play_services\libproject\google-play-services_lib

 

例如我的:

D:\learnsoftware\java\android_appli\sdk\android-sdk-windows\extras\google\google_play_services\libproject\google-play-services_lib

如下图点击Finish

 

 

右键单击你所写的工程点击属性出现下图

点击Add出现下图选择google-play-services_lib点击OK在上图中点击OK就添加了google-play-services_lib.jar

 

 

 

  1.  

Ps:我第一次做的时候经过上面一步后这一步是没有问题的应该弹出第10步的图

但是很悲剧的是第二次就报错了

再次运行又报错而且错误和刚才一模一样

 

为什么还是报错呢因为第一次都是对的

接着就发挥google还有百度大神的作用了

我寻寻觅觅找了好久在某个论坛中提到的一段话提醒了我

这里是引用cosimo_dw老兄的话

  1. workspace要跟SDK在同一个分区下

    这个是为了等一下导入的时候使用相对路径,我也不知道为什么绝对路径就一直报错,但是相对路径确实是可以跑起来的。希望有大牛可以研究下这个奇怪的BUG

    2. 
    导入google_play_servicelibrary
    做法如下:(以英文版eclipse4.2为例)
    首先选择File->Import->Android->Existing Android Code Into Workspace,点Next
    Browse... 然后文件夹选择
    <android-sdk-folder>/extras/google/google_play_services/libproject/google-play-services_lib
    ,点Finish。这时候Project Explorer里面会出现google-play-services_lib一项。
    然后在自己的项目上点右键->Properties->Android,下面Library的列表的右边点Add添加,然后选择刚刚导入的google-play-services_lib然后确定即可。如果你看到列表里面的路径是类似
    ..\..\android-sdk-windows\extras\google\google_play_services\libproject\google-play-services_lib这样的相对路径说明你弄对了,如果是
    D:\android-sdk-windows\extras\google\google_play_services\libproject\google-play-services_lib
    那就说明你的分区没弄对(如果确实是同一分区的话Eclipse可以变相对路径的,如果确实是抽风了的话,那么可以直接打开project.properties文件把最后一行那个library改成相对路径)。
    弄对这里之后再跑应该就不会出问题了,起码我用这个方法成功了。
  2. 于是乎我重新导入google-play-services_lib重复第9步的操作

 唯一不同的是 勾选了Copy projects into workspace

  1. 再次运行编写的工程弹出如下界面

因为google map属于google play 中的应用所以需要 google play服务

理所当然的点击获取Google Play服务

  1. 又出错了如下图

我琢磨了一下 

估计是天嵌公司将Google play的服务给删掉了导致与我加了google-play-services-lib包后还是不能识别出来

于是利用360手机助手上传文件google play serviceapk

com.google.android.gms.apkcom.android.vending.apkTQ210开发板中

下载地址:

com.google.android.gms.apk (也就是Google_Play_services_3.1.36_(669520-36).apk

http://pan.baidu.com/share/link?shareid=548334&uk=1025967607

com.android.vending.apk

 http://pan.baidu.com/share/link?shareid=548301&uk=1025967607

  1. 接着出错好吧只有接着找了

好吧原来我把meta-data放在了Application之外了 应该把meta-data放在Application标签之中

  1. 再次运行打不死的小强哈

 

虽然没有报错但是一直屏幕一直是白板

我查看了一下LOGCAT发现如下问题

05-27 12:18:54.574: E/Google Maps Android API(9023): Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).

我突然想到了

Api key分为两种情况

一种是使用debug keystore生成的api key

一种是使用release keystore生成的api key

不同的api key使用不同的sha1字符生成 

而我申请的api key是使用release keystore生成的 而我是使用eclipse在线调试将apk安装到TQ210开发板上使用的是debug keystoresha1

所以导致authentication issue从而屏幕一直是白板。

两种解决办法:

1.    将项目exportapk安装到TQ210开发板上(使用release keystore打包)

2.    使用debug keystore在申请一个api key然后使用

  1. export导出来的apk安装咋TQ210开发板上

经过持续的努力结果终于出来了

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

TQ210搭载Android 4.0.3测试Google Maps API V2(一.获取地图)[转]

TQ210搭载Android 4.0.3测试Google Maps API V2(一.获取地图)   硬件环境:tq210 v4开发板 运行环境:Android 4.0.3 ...
  • chenaini119
  • chenaini119
  • 2014年03月07日 15:12
  • 1070

Android Google Maps API 网络服务用于网络定位、计算路线、获取经纬度、获取详细地址等

Google Maps API 网络服务   官网地址 : https://developers.google.com/maps/documentation/webservices/?hl=zh-cn...
  • h7870181
  • h7870181
  • 2013年10月09日 14:51
  • 12747

Google Maps Android API V2开发入门1之显示地图

[java] view plaincopy        Google Maps Android API V2新版本在2012/12进行更新,需要注意几个...
  • hyl963254113
  • hyl963254113
  • 2014年07月28日 12:05
  • 616

Google Maps API for Android 指南(一)

Android版Google API 介绍。 通过Android版的Google API,开发者可以基于Google Map的数据开发自己的APP,API将自动连接至Google Map服务器、下载数...
  • vanpersie_9987
  • vanpersie_9987
  • 2016年03月05日 18:54
  • 1949

android google maps之 简单定位(一)

前言:在android google maps之 简单定位(一)中我们已经得到世界地图了,其实我们一行代码也没有写呢,那么如果在MainActivity中加一些代码,那么我们就可以实现简单地定位了哦...
  • fishmai
  • fishmai
  • 2016年09月01日 12:56
  • 3986

Google地图地址取经纬度、经纬度取地址API

http://maps.google.cn/maps/api/geocode/json?address=地址 li
  • mokeyjay
  • mokeyjay
  • 2014年07月23日 15:08
  • 2371

Google Maps API Key申请办法(最新)

之前的Google Maps Api的API Key很容易申请,只需要按照一个简单的表单提交部署的网站地址即可,自动生成API Key并给出引用的路径。 但是最近在处理另外一个项目的时候发现...
  • caiwenfeng_for_23
  • caiwenfeng_for_23
  • 2015年01月09日 14:26
  • 3400

Unity3d对接谷歌地图(iOS篇)

因为工作中接触到了外企的项目,需要使用谷歌地图,国内用百度或者腾讯地图做开发的比较多,起初在弄的时候也是几乎没有找到任何中文的参考资料,这里算是给能看到我博客的并且也需要这方面开发的人一些详细的梳理性...
  • fqrq88918329
  • fqrq88918329
  • 2015年08月03日 11:47
  • 2459

如何插入谷歌地图并获取javascript api 秘钥

如何插入谷歌地图并获取javascript api 秘钥今天突然公司的项目中用到的谷歌地图全部都报Google Maps API error: MissingKeyMapError这个错误,查阅谷歌m...
  • klsstt
  • klsstt
  • 2016年06月23日 16:41
  • 5375

Google Maps API V3学习一(获取地图坐标与街道地址)

最近需要用到Google地图,整理下: 官方文档地址:http://code.google.com/intl/zh-CN/apis/maps/documentation/javascript/b...
  • ximenxiafeng
  • ximenxiafeng
  • 2015年09月30日 10:06
  • 1789
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TQ210搭载Android 4.0.3测试Google Maps API V2(一.获取地图)
举报原因:
原因补充:

(最多只允许输入30个字)