14

了解しました。これが例を使用して行ったことです

  1. keytoolを介してデバッグキーを取得しました(デバッグキーが[設定]-> [Android]-> [ビルド]でeclipseによって使用されていることを確認してください)
  2. コマンドによってキーを生成しました

    $ keytool -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android

  3. GoogleAPIコンソールにSHA1の合計をコピーして貼り付けました+私のパッケージ名:

    sum; com.my.package

  4. GoogleAPIコンソールの同じプロジェクトでGoogleMapAPIv2を有効にしました

  5. メタデータのマニフェストアプリケーションにコピーしました。

  6. SDKマネージャーを介してダウンロードし、google-play-services_libプロジェクトをインポートして、ライブラリプロジェクトとして参照しました。ActionBarSherlockと同様に。

  7. 起動する前に、GooglePlayServicesが利用可能であることを確認します。

マニフェスト:

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

<permission
    android:name="com.my.package.permission.MAPS_RECEIVE"
    android:protectionLevel="signature"/>

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

応用:

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

プロガードのものも追加されていますが、今は難読化されていません。

DrugstoresMapActivityはSherlockFragmentActivityを拡張します

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <fragment
        android:id="@+id/map_fragment"
        class="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</RelativeLayout>

project.properties

target=android-17
android.library.reference.1=../google-play-services_lib
android.library.reference.2=../ActionBarSherlock

ActionBarSherlockのlibsにはandroid-support-v4がありますが、それが重要な場合はメインプロジェクトではありません。

StartupActivityは、利用可能なサービスが利用可能な場合にのみ、DrugstoresMapActivityが起動されるようにします。

private void attempt() {
    int result = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getBaseContext());

    switch (result) {
        case ConnectionResult.SUCCESS:
            startActivity(new Intent(this, DrugstoresMapActivity.class));
            finish();
            break;

        default:
            GooglePlayServicesUtil.getErrorDialog(result, this, REQUEST_DIALOG)
                .show();
            break;
    }
}

キーを再確認して問題ありません。私がここで逃したものの手がかりはありません。

4

1 に答える 1

46

間違ったサービスが有効になりました。「GoogleMapsAPIv2」ではなく「GoogleMapsAndroidAPI v2」が有効になっていることを確認し、APIキーを再生成します。

于 2012-12-10T17:17:30.737 に答える