1. Google Maps Android API v2 をエミュレータで。

    ハマって、確実に忘れるのでメモ。 以下のサイトを参考にさせていただきました。 Google様、インターネット様、ブロガー様に感謝いたします。





    僕の環境は、Mac OS 10.6.8、Eclipse Heliosです。 https://code.google.com/apis/console からGoogle Maps API Keyを取得します。(要ログイン)




    1. 「Services」タブから「Google Maps Android API v2」を探して ON に。

    2. 「API Access」タブから「Create New Android key…」をクリックし、表示されているコマンドをターミナルで実行。 keytool -list -v -keystore mystore.keystore SHA-1の値をコピーして末尾に「;アンドロイドパッケージ名」を付け足す。





    これでAPI Keyは取得できました。正式リリースしない場合は2の手順は不要で「Simple API Access」欄の「API key」を使えばいいようです。 続いてEclipse「Android SDK Manager」から「Google Play services」をインストールしてワークスペースに「Android Project from Existing Code」でインポート。 パスは



    ${SDK_ROOT}/extras/google/google_play_services/libproject/google-play-services_lib


    新規プロジェクトを作成し、プロジェクトプロパティで「Android」設定画面を開き、Libraryのところの「Add…」をクリックし、先ほど追加したプロジェクトを選択。 AndroidManifest.xmlに追加(android:name の yourpackagename とandroid:value の yourAPIkeyHERE は要変更。)




    <permission android:name="com.yourpackagename.permission.MAPS_RECEIVE" android:protectionLevel="signature">

    </permission>

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <uses-permission android:name="com.yourpackagename.permission.MAPS_RECEIVE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <uses-feature
    android:glEsVersion="0x00020000"
    android:required="true"/>

    <meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="yourAPIkeyHERE" />


    activity_main.xmlを修正。




    <fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/map_frag"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment" />


    MainActivity.javaはとりあえず以下に。




    package com.yourpackagename;

    import android.app.Activity;
    import android.os.Bundle;

    public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    }

    }


      これで動くと思いきや、ダメでした。 エミュレーターを新しく作成。





    • 装置:5.1”WVGA(480 × 800: mdpi)

    • ターゲット:Android 4.1.2 - API Level 16

    • CPU/ABI:ARM(armeabi-v7a)


    apkファイルをADBコマンドでインストール。




    ですが、上記のファイルではダメだったので以下をダウンロードしてインストール。




    ADBコマンドでのインストールは僕の環境ではフルパス指定じゃないとだめでした。



    $ /パス/android-sdk-macosx/platform-tools/adb install /パス/com.android.vending-108b71f4793186b8fd1768a9cd19bbd5.apk


    余談ですがADBコマンドのアンインストールは.apkではなく解凍後のパッケージ名を指定するみたいです。



    $ /パス/android-sdk-macosx/platform-tools/adb uninstall com.android.vending


    これで、エミュレーターでGoogle Maps Android API v2が動くようになりました。  


    Posted by Shunsuke Hayashi on 2013年03月13日
    Categories android