2011年3月15日火曜日

「Google Map(Android Mapと言うらしい)」真っ白な画面しか出ない原因が分かった

まず、デバッグで実行するにしても実機でやるにしても「Google MAPS APIのキー」が必要。
 
   ↓クリックで、このブログの評価が上がり執筆者が喜びます
にほんブログ村 IT技術ブログ プログラム・プログラマーへ



■キーの取得方法(デバッグ編)
1、コマンドプロンプトを使う。インストールしたJavaのbinフォルダにパスを通すか、そこの場所まで移動する。

2、「keytool」と言うexeを使用する。

3、「Documents and Settings\ユーザー名\.android」にdebug.keystoreがあるのでそれをkeytoolの引数に指定する。
例)keytool -list -keystore "C:\Documents and Settings\安藤ロイド\debug.keystore"

以下のようにパスワードを聞かれるが、入れなくていいのでEnter押下。
「キーストアのパスワードを入力してください:」→このままEnter
*****************  警告 警告 警告  *****************
*  キーストアに保存された情報の完全性は検証されて  *
*  いません!  完全性を検証するには、キーストアの   *
*  パスワードを入力する必要があります。            *
*****************  警告 警告 警告  *****************
キーストアのタイプ: JKSキーストアのプロバイダ: SUN
キーストアには 1 エントリが含まれます。
androiddebugkey, 2009/05/24, PrivateKeyEntry,
証明書のフィンガープリント (MD5): 99:CF:99:AB:D9:29:FD:99:02:7B:15:4E:48:99:DD:99
(このフィンガープリントはでたらめ)

フィンガープリントをどっかにコピペしておく。

4、http://code.google.com/intl/ja/android/maps-api-signup.html にアクセス。
  下にチェックし、さっきのフィンガープリントをペーストして「Generate API Key」ボタンを押下。
  以下のような画面が出る。上の方に長いキーがあるのでコピペして保存しておく。


















■コーディング方法
リソースの「main.xml」で画面を構築してついでに、そこへAPIキーを埋め込む方法と、ほとんどJavaコードだけで記述する方法があるが、楽なのでJavaコードだけでコーディングする。

string.xml位は設定する。さっきのAPIキーを登録。
<string name="map_key">XXij5yXhQoQkDVFb6AqlyXXPyLOOivXXapjS4XX</string>
(このキーはでたらめ)

これをせずに実行していた為、マップが出ずに真っ白な画面の下にGoogleMapとだけ出ていた。間違えて画面のタイトルを入れていた。


ぶっちゃけAndroidのマニュアルは見てない。ついカッとなってやった。反省はしていない。

マニュアル?何それ?おいしいの?


ファイル名:
IamHere.java

パッケージ名:
package com.google.android.iamhere;


・以下、ソースコード全文

package com.google.android.iamhere;

import com.google.android.maps.MapView;
import android.os.Bundle;

(普通のActivityではない)
public class IamHere extends MapActivity {
    private MapView mapView;
    /** Called when the activity is first created. */
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        // マップを制御するために、マップビューとコントローラを生成する
        mapView = new MapView(this, getResources().getString(R.string.map_key));
        // Activityを有効にする
        mapView.setEnabled(true);
        // クリックできるようにする
        mapView.setClickable(true);
        // ズーム機能を使えるようにする
        mapView.setBuiltInZoomControls(true);
        setContentView(mapView);
    }
    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }
}

プロジェクトはいつものAndroidエミュ(Ver2.2)ではなく、GoogleAPI(Ver8)を指定する
あらかじめGoogleAPIの使用したいバージョンをSDK Managerでインストールしておく。
デバッグ構成にGoogle API(v8)を指定して実行。















次回はGPS機能を使用したい。
 
 

0 件のコメント: