2012年12月5日水曜日

Google Maps Android API v2 サンプルを動かす

TwitterのTLで「Google Maps Android API v2」のリリースを見て早速試したので備忘録

記述内容は以下のリンクにあるintroductionとGetting Startedをなぞったものとなります。

TLでリンクされていたURLはこれです。
http://android-developers.blogspot.jp/2012/12/new-google-maps-android-api-now-part-of.html

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

動画説明あり
http://googlegeodevelopers.blogspot.jp/2012/12/better-maps-in-your-android-apps.html


<サンプルソースの取得>

 

・サンプルソースのダウンロード方法

  Android SDK ManagerによりPacakageのUpdateを行うことで
  ライブラリプロジェクトやサンプルをダウンロードすることができます。
  動画でもSDK Manager....とか言ってますね。

 チェックする項目は「Extras」のGoogle Play services

 アップデートで下記のディレクトリにDocライブラリとサンプルプロジェクト一式がダウンロードされます。

・ADT Bundle for Windowsの環境だと
C:\Users\xxxx\Desktop\adt-bundle-windows\sdk\extras\google\google_play_services\libproject\google-play-services_lib

アップデート後には導入されたディレクトリが表示される

<ADT Bundle for Windows環境でBuild>


0.「ライブラリプロジェクトの導入(Eclipse)」

Google Play Serviceライブラリをマップアプリの中で使えるようにプロジェクトを準備します。

1.「ライブラリプロジェクトの導入」

メニューからFile > Import > Android > Existing Android Code Into Workspace として Next.

Root Directory: に C:\Users\xxxx\xxxx\adt-bundle-windows\sdk\extras\google\google_play_services\libproject\google-play-services_lib
 
 ※指定すべきディレクトリはAndroid SDK Managerで 確認できます。
 なぜかディレクトリ毎消滅してしまう場合があるため、削除と再チェックで導入を繰り返しました。


導入されると以下の画像のようにPackage Explorerにライブラリプロジェクトが列挙されます。

google-play-services_lib が追加された

1.「MapV2 サンプルブロジェクトの導入」

  1. メニューの File > Import > Android > Existing Android Code Into Workspace をクリックして Next.ボタン押下 
  2. 表示されるダイアログのBrowse..., ボタンを押して、サンプルプロジェクトの在り処を指定します。
  3. ImortProjectのダイアログは「Finish」を押すことでサンプルプロジェクトが ProjectExplorerに表示されるようになります。プロジェクト名は「MainActivity」です。
今回は、 C:\Users\sakaneya\Desktop\adt-bundle-windows\sdk\extras\google\google_play_services\samples\maps を指定して「OK」

    ※mapが存在しない場合は、Android SDK Managerで
        「ExtrasのGoogle Play Service」を一旦削除し
        再度チェックしてUpdateすればダウンロードされます。


2.「サンプルプロジェクトの設定」

   ココでは、「Android サポートライブラリV4」をプロジェクト内で参照できるようにします。
  1. Pacakge Explorer 上のサンプルプロジェクト「MainActivity」上で、左クリック
  2. メニューの Project > Properties  > Java Build Path, とクリックして、Librariesタブを選択します。
  3. 続けて「Add External Jars」,を押して出てくる「Jar Selection」に android-support-v4.jar を選択して導入します (C:\xxx\xxxx\xxxx\adt-bundle-windows\sdk\extras\android\support\v4) 
※サポートライブラリ(android-support-v4.jar)がない場合は、
          一旦戻ってAndroid SDK Managerで導入してください。
Android-support-v4.jarの格納ディレクトリが どこにあるか不明の場合は、「Android SDK Manager」によって確認できる。

3.「API Keyの取得と設定」(Debug Modeで説明)

   目的はマニフェストファイルにAPIKeyを記述することです。
   ※従来のマップ(V1)で使われていたAPIKeyはV2に流用できません。

  1. 「Debug Mode用の SHA-1 fingerprint 」を用意する
       V2版のAPIKeyの交付は「Google APIs Console」で行います。
       詳細な取得方法は本家に「Creating an API Project」として説明あり、以下概要

用意する文字列や入力方法はこのダイアログを読めばわかる
     

       具体的にはコンソール上(コマンドプロンプト)で
     keytool -list -v -keystore debug.keystore 
     と実行します。 
     debug.keystore の格納場所は、
       Widows機では C:\Users\ユーザー名\.android\debug.keystore となります。
      
       参考「2012年版 Androidアプリ開発 SDK入れて一年すると発生するエラー "Debug certificate expired on ~



   2.APIKeyの交付を受ける
      Google APIs Console > API Access > 「Create new Android Key」で
     出てくるダイアログに 先ほど取得したSHA-1とプロジェクトのネームスペースの値を
      「;」でつなげた文字列を入力してAPIKeyの交付を受けます



   交付されたAPIKey文字列は API Access で確認できます。
API Keyを見てね
    

   3.APIKeyの設定
      プロジェクトのManifest.xml に APIKeyを仕込みます。

AndroidManifest.xml
   マニフェストにAPIKeyの記述場所が用意されているので、悩むことは無いですね。


・補足1.

  ここまでintroductionで示されている手順道理に進めてきた?のですが、動きませんでした。
 サポートV4ライブラリの指定方法が怪しいらしく、プロジェクトフォルダにLibsを作成して
 その中に「android-support-v4.jar」を直接コピーしておき、
 Build Pathをそれに指定することで解決しました。

  1. MainActivity上で右クリック
  2. New > Source Folder
  3. 「New Source Folder」ダイアログのFolder NameにLibsと入力してLibsフォルダ作成
  4. Libsフォルダに android-support-v4.jar をコピー
  5. android-support-v4.jar上で右クリック
  6. Build Path > Add to Build Path を実行

 

・補足2.

 これでもエラーが出る場合は、
  ライブラリプロジェクトの設定がおかしい場合がある...ということで、以下の処理を行います

  1. MainActivity上で右クリック
  2. Propaties > Android > Libraryの「Add」を押す
  3. google_play_services_lib を選択して「OK」ボタンを押す



・実行!!