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开发板上

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

 

 

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

Google Maps Android API v2-新版本Google地图的使用教材

概述:  1. 打开ADT插件中Android SDK Manager工具,然后打开【Extras】列选中【Google Play services】下载  2. 获取一个API Key,这个ke...

【Android·GoogleMap】Google Maps API V2 的显示

Google Map API 已经从V1

Google Maps Android API V2的使用

关于Google Maps Android API V2的使用,
  • seeytom
  • seeytom
  • 2014年05月21日 00:52
  • 758

Google Maps Android API v2开发----环境搭建

由于工作需要,近期

Google Maps Android API V2使用及问题解决【转】

因为Google Maps的API版本更新,之前的一些教程都是关于旧版本V1的,虽然Google说继续提供服务,但是不再提供API Key的申请。   而新的V2版本貌似改动还挺大。也没搜到国内...

转贴自圣骑士wind:Google Maps Android API V2的使用及问题解决

原帖地址:点击打开链接 Google Maps Android API V2的使用及问题解决   Google Maps Android API V2使用及问题解决 说...
  • yrnaaa
  • yrnaaa
  • 2013年05月16日 21:21
  • 1053

Google Maps Android API v2 key生成以及添加到application的所有步骤

一、生成证书指纹:       ①:找到debug keystore路径: 打开Eclipse--->Windows--->Preferences--->Android--->Build,在Defu...
  • sjc53yy
  • sjc53yy
  • 2013年04月02日 16:11
  • 572

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

[java] view plaincopy        Google Maps Android API V2新版本在2012/12进行更新,需要注意几个...

开发基于 Google Maps Android API v2的 Android 应用

下面为大家讲一下在eclipse中搭了一个基于 Google Maps Android API v2的 Android 应用demo,请看具体步骤:   1、安装android sdk和Googl...
  • awring
  • awring
  • 2014年01月16日 15:06
  • 352

开始使用Google Maps Android API v2(Getting Started)

创建一个可以使用google Maps Android API v2的android应用程序需要几个步骤。本章节中大部分步骤都只需要执行一次,但是有一部分步骤需要你在未来开发的程序中进行配置。整个安装...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TQ210搭载Android 4.0.3测试Google Maps API V2(一.获取地图)
举报原因:
原因补充:

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