国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Google Maps Android API V2使用及問題解決

移動開發 Android
Google Maps Android API 在2012年12月更新,其V2版摒棄了MapActivity,而采用MapFragment,從而可以更好的在Android中使用地圖組件。本文詳細介紹了如何使用這一新特性。

說明

因為Google Maps的API版本更新,之前的一些教程都是關于舊版本V1的,雖然Google說繼續提供服務,但是不再提供API Key的申請。

而新的V2版本貌似改動還挺大。也沒搜到國內有什么系統介紹的博客文章之類的(書肯定是來不及那么新了)。

斷斷續續折騰了大概半個月,因為對Android也不是特別熟悉,所以碰到這樣那樣的問題。

終于在昨天看見模擬器上跑的地圖了。太感人了。

下面就主要說說要成功做成這一件事的流程吧。

因為肯定有時效性,所以打上一個時間戳:版本更新事件發生在2012年12月,而這篇博文目前的時間是2013年1月1日。

背景

一些相關的鏈接:

Google Maps Android API V1的介紹:

https://developers.google.com/maps/documentation/android/v1/mapkey?hl=zh-CN

Google Maps Android API v2的初步介紹:

https://developers.google.com/maps/documentation/android/

Introduction

https://developers.google.com/maps/documentation/android/intro

Getting Started

(本部分參考https://developers.google.com/maps/documentation/android/start

1.首先安裝Google Play services SDK

Google Maps Android API是作為這個SDK的一部分發行的。

這個安裝是通過Android SDK Manager進行,配置好之后的Eclipse上面應該有Android SDK Manager的圖標,一般的SDK版本安裝和更新都在這里進行。

安裝和更新Extras下的Google Play services即可。

2.獲取API key

獲取Maps API key需要兩樣東西:應用的signing certificate和它的package name。

獲取這個key之后,把它加在應用程序的AndroidManifest.xml文件里即可。

為應用獲取一個key還是需要好幾個步驟的,下面詳細說明:

獲取數字證書(digital certificate)信息

數字證書有Debug和Release兩種,下面主要說Debug的。

要獲取一個叫做SHA-1 fingerprint的東西,作為數字證書的一個簡短代表。

這個指紋(fingerprint)是通過一個哈希算法得到的字符串,為了得到你的證書的SHA-1 fingerprint,首先要找到你的debug keystore 文件,文件名叫debug.keystore。

默認情況下它和虛擬機AVD存放在一起,win7下的路徑是:C:\Users\your_user_name\.android\,也可以通過Eclipse中的Windows > Prefs > Android > Build來查看這個路徑。

然后,在cmd命令行里運行下列命令:

keytool -list -v -keystore "C:\Users\your_user_name\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

就顯示一大堆東西,其中就有證書指紋:

SHA1那一行就包含了證書的SHA-1 fingerprint,是二十段用冒號割開的數字段,每段是兩個十六進制的數。

在Google APIs Console上創建API Project

在Google APIs Console上創建項目,并且注冊Maps API。

首先,去這個網址:https://code.google.com/apis/console/

用Gmail的賬戶登錄,如果是第一次的話,需要創建項目,默認情況會創建一個叫做API Project的項目。

點擊左邊的Services,會在中間看到很多的APIs和Services,找到Google Maps Android API v2,然后把它設置成on,需要接受一些服務條款。

獲得API Key

在左邊的導航條中選擇API Access。

在出來的頁面中選擇Create New Android Key...就可以生成key了:

Google Maps Android API V2使用及問題解決

然后在對話框中填入:SHA-1 指紋, 分號隔開,然后是應用的 package name.然后就會生成一個Key。

比如:

Google Maps Android API V2使用及問題解決

3.把API Key加入應用程序

首先,建立虛擬設備AVD和應用程序。

關于AVD,官方文檔并沒詳細介紹,我后面會有說明。

建立好應用程序,注意包名應該和申請key時候的包名一致。

之后修改AndroidManifest.xml文件:

3.1.在<application>元素中加入子標簽

  1. <meta-data 
  2.  
  3.     android:name="com.google.android.maps.v2.API_KEY" 
  4.  
  5.     android:value="your_api_key"/> 

3.2.加入一些許可信息

  1. <permission 
  2.           android:name="com.example.mapdemo.permission.MAPS_RECEIVE" 
  3.           android:protectionLevel="signature"/> 
  4.         <uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/> 

其中com.example.mapdemo換成自己的包名。

 

4. AndroidManifest.xml中的其他具體設置

許可設置

<uses-permission> 作為<manifest> 的子元素,需要加入下列一些:

  1. <uses-permission android:name="android.permission.INTERNET"/> 
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
  3. <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
  4. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
  5. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

OpenGL ES V2特性支持

    同樣也是作為<manifest> 的子元素。

  1. <uses-feature  
  2.   android:glEsVersion="0x00020000"  
  3.   android:required="true"/> 

5.加上地圖

首先布局文件:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <fragment xmlns:android="http://schemas.android.com/apk/res/android" 
  3.   android:id="@+id/map" 
  4.   android:layout_width="match_parent" 
  5.   android:layout_height="match_parent" 
  6.   class="com.google.android.gms.maps.MapFragment"/> 

然后在MainActivity.java:

  1. MainActivity.java 
  2.  
  3. package com.example.mapdemo;  
  4.   
  5. import android.app.Activity;  
  6. import android.os.Bundle;  
  7.   
  8. public class MainActivity extends Activity {  
  9.   
  10.     @Override  
  11.     protected void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.         setContentView(R.layout.main);  
  14.     }  

遇到的問題和解決的方法

程序編譯錯誤,顯示找不到一些類

如圖:

Google Maps Android API V2使用及問題解決

解決這個問題,首先需要把Google Play services的類庫加載進來:

  在Eclipse里面選擇:File > Import > Android > Existing Android Code Into Workspace然后點擊Next.

  之后Browse..., 找到路徑下的<android-sdk-folder>/extras/google/google_play_services /libproject/google-play-services_lib, 然后選擇Finish。

第二步是添加對這個庫的引用:

  在自己的項目上右鍵,選Properties,左邊選Android,然后在下面的Library里面Add剛才的google-play-services_lib。

之后程序就應該能運行了。

接著你可能會碰到下面的問題:

程序運行成功,但是顯示This app won't run unless you update Google Play services.

如圖:

有傳言說V2不能在AVD上運行,可能Google還會對此問題進行更新。

經過搜索,這個問題已經在Stackoverflow上被討論過了,鏈接

所以看來在AVD上運行的問題已經被解決了。

解決的方法就是在AVD上安裝兩個包:vending.apk和gms.apk,(給一個網盤鏈接

并且AVD就選擇普通的API 16就行,不需要是Google APIs。我選的是Android4.1 API16.

安裝時把那兩個包放在當前目錄,用命令行安裝:

之后運行程序,就出地圖了:

責任編輯:徐川 來源: cnblogs
相關推薦

2013-08-13 10:59:03

Android Stu啟動

2011-09-06 09:26:03

2010-06-12 13:49:50

Ubuntu 10.0

2013-03-04 14:24:58

Google Maps

2013-02-28 13:35:02

Google Maps

2011-02-23 13:48:05

Web

2011-08-18 18:46:24

SQL Server

2011-06-27 16:44:59

Qmake

2011-06-13 16:16:32

Qt 中文問題

2010-04-28 18:01:15

Unix系統

2010-06-17 11:35:24

Ubuntu 修復Gr

2011-03-23 16:38:28

LAMP

2011-08-03 11:07:01

布線管理軟件

2010-05-05 10:25:24

Unix操作系統

2009-12-28 10:56:45

WPF Image

2011-11-28 22:45:19

Nginxsession

2011-09-05 18:57:36

MTKJ2ME

2012-05-09 10:08:41

跨機房

2010-05-05 14:20:46

AIX CDE

2011-01-21 14:13:10

點贊
收藏

51CTO技術棧公眾號

自拍偷拍精选| 一区二区免费看| 国产日韩精品综合网站| 怡红院成人在线| 欧美精品久久一区| 黄色网址在线播放| 亚洲一二三四在线| 黄色一级影院| 尤物视频一区二区| а√最新版在线天堂| 日本一区二区三区免费乱视频| 欧洲一区二区在线| 亚洲精品女人| 国产一区二区三区高清| 精品动漫3d一区二区三区免费版| 国产欧美一区二区三区视频| 亚洲人成网站77777在线观看 | 欧美xxxxx在线视频| 国产成人亚洲综合a∨猫咪| 亚洲精品日韩成人| 青青国产91久久久久久| 久久精品国产精品青草色艺| 亚洲清纯自拍| 日本高清久久一区二区三区| 国产精品普通话对白| 99re国产视频| 亚洲影院在线| 一区二区三区|亚洲午夜| 国产精品亚洲专一区二区三区 | 亚洲色精品三区二区一区| 久久久久久久久久看片| 91看片就是不一样| 国产精品美女久久久久久久网站| 中文字幕在线导航| 一区二区三区小说| 欧美日韩视频精品二区| 欧美日韩国产乱码电影| 成人bbav| 蜜臀久久99精品久久久久久宅男 | 亚洲成人福利在线观看| 亚洲黄色免费网站| 韩国中文免费在线视频| 日韩久久久久久| 深夜视频一区二区| 91爱爱小视频k| 99久久精品国产亚洲精品| 国产精品一级久久久| 狠狠色丁香九九婷婷综合五月 | 国产精品一区二区三区乱码 | 国产三级视频在线看| 成人在线啊v| 欧美精品一区在线观看| 色是在线视频| 一区二区三区视频免费| aa级大片免费在线观看| 午夜片欧美伦| 国产又爽又黄的激情精品视频| 91日韩一区二区三区| 国产精品亚洲综合在线观看| 亚洲国产美国国产综合一区二区| 中文有码在线观看| 国产成人精品视频在线观看| 久久蜜臀精品av| 精品国产亚洲一区二区三区| 日韩欧美一区二| 丝袜美腿精品国产二区| av不卡在线播放| gogo久久日韩裸体艺术| 3d黄动漫网站| 亚洲xxx自由成熟| 精品久久久久久久久久久久| 欧洲成人综合网| 欧美剧在线观看| 99久久综合狠狠综合久久aⅴ| 日本成人三级| 亚洲最大色网站| 国产福利电影在线播放| 国产高清av在线| 亚洲网站在线观看| 九九视频精品全部免费播放| 欧美一级二级三级| 亚洲欧美一区二区三区久本道91 | 超碰在线图片| 精品亚洲男同gayvideo网站| 欧洲专线二区三区| 亚洲自拍偷拍一区二区三区| 精品国产精品自拍| 亚洲tv在线| 日韩欧美第二区在线观看| 国产精品免费看片| 日韩欧美精品一区二区三区| 成人免费视频在线观看超级碰| av日韩在线网站| 免费黄网站在线| 日韩免费在线免费观看| 国产91精品久久久久久久网曝门 | 91中文在线观看| 91日韩在线专区| 国产夫妻在线| 成人毛片网站| 一区二区三区中文免费| 欧美成人毛片| 日本丰满少妇黄大片在线观看| 黑人狂躁日本妞一区二区三区 | 韩国版免费三体| 亚洲人在线观看| 老妇喷水一区二区三区| 在线视频资源站| 国产69精品久久久久99| 国产盗摄女厕一区二区三区 | gogo人体一区| 国产精品后入内射日本在线观看| 日韩一区和二区| 国产精品99免费看| 欧美变态视频| 国产精品美女免费| 亚洲欧美一区二区三区久本道91| 久久伊人影院| 国产在线观看欧美| 亚洲精品一区二区在线观看| 国产亚洲高清视频| 日本高清中文字幕在线| 国产传媒欧美日韩| 大桥未久av一区二区三区| 禁断一区二区三区在线| 成年人羞羞的网站| 国产脚交av在线一区二区| 中文字幕亚洲综合久久菠萝蜜| 1204国产成人精品视频| 成人午夜视频免费在线观看| 亚洲欧洲午夜一线一品| 久久99久久精品| 欧美香蕉视频| 久久久999视频| 蜜月aⅴ免费一区二区三区| 97aⅴ精品视频一二三区| а天堂中文最新一区二区三区| 九一国产精品视频| 欧美www在线| 亚洲国产精品av| 日韩高清三区| 久草在线看片| 不卡视频一区| 日韩亚洲欧美综合| 黄一区二区三区| 亚洲精品自拍| 男人天堂免费视频| 成人av男人的天堂| 欧美一区二区精美| 国产乱子伦视频一区二区三区| 最近高清中文在线字幕在线观看1| 久久国产精品免费观看| 欧美精品亚州精品| 一区二区欧美在线观看| 国产字幕视频一区二区| 国产偷倩在线播放| 成人av一级片| 国产精品日日做人人爱| 欧美精品久久一区| 懂色av一区二区在线播放| 国产精品自在| 久久视频www| 欧美日韩视频免费在线观看| 欧美成人精品一区二区| 亚洲已满18点击进入久久| 激情欧美一区二区三区| 欧美7777| 日本1区2区| 色播五月综合| 久久人人爽人人爽人人片av高请 | 欧美精品少妇videofree| 一区二区在线看| 日韩天堂av| 日韩综合久久| 亚洲sss视频| 国产精品视频一二三四区| 欧美在线免费看| 日韩一区二区在线观看视频| www.欧美.com| 欧美淫片网站| 精品无人乱码一区二区三区| 性综艺节目av在线播放| 久久久综合亚洲91久久98| 最新国产成人av网站网址麻豆| 亚洲一区二区三区自拍| 美女在线一区二区| 日韩欧美影院| 欧美aaa免费| 2018av男人天堂| 亚洲欧美一区二区原创| 日韩av成人在线| 亚洲精品国产欧美| 亚洲大片免费看| 国产精品一区二区视频| 97视频热人人精品免费| 久久久成人av毛片免费观看| 青青青草原在线| 欧美精品无码一区二区三区| 欧美性色黄大片人与善| 国产精品永久在线|