1

ウェブサイトのガイドに従って、SDK から Google マップのサンプル コードをテストしようとしています。

設定、ビルドパス、およびクラスパスを少しいじった後、なんとかコンパイルしてデバイス (エミュレーターではなく物理デバイス) にデプロイすることができました。ただし、logcat で Authorization Failed エラーが発生します。そして、API キーを AndroidManifest.xml に入力しました。

この変更を除けば、この例の他のコードは変更されていません。

アプリケーションがコンパイルされるので、サポート jar を追加し、ライブラリ プロジェクトを正しく参照していることはわかっています。私が考えることができるのは、どういうわけか署名証明書が間違っているということだけです。パッケージング中に、私はこれを見ます:

[2013-01-28 10:35:00 - MainActivity] Using default debug key to sign package
[2013-01-28 10:35:00 - MainActivity] Using keystore: /home/user/.android/debug.keystore
[2013-01-28 10:35:00 - MainActivity] Packaging MainActivity.apk

したがって、debug.keystore を使用しています。

使用する

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android | grep SHA1

私のデバッグ証明書は次のとおりです。

SHA1: {KEY_HIDDEN}

したがって、これを次のように Google API コンソールに追加します。

{KEY_HIDDEN};com.example.mapdemo

サンプルアプリのパッケージはcom.example.mapdemo なので

そしてAPIキーを取得します。私の場合、それは

AIzaSyAW8nihGO9uSW170YETE-Q1pPjFAW-B4M8

だから私はそれを私の AndroidManifest.xml に追加します

  <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/demo_title"
    android:hardwareAccelerated="true">
    <!-- You must insert your own Google Maps for Android API v2 key in here. -->
    <meta-data
      android:name="com.google.android.maps.v2.API_KEY"
      android:value="AIzaSyAW8nihGO9uSW170YETE-Q1pPjFAW-B4M8"/>
    <activity android:name=".MainActivity">
      <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
      </intent-filter>
    </activity>

それでも、私は取得し続けます:

01-28 10:54:39.423: E/Google Maps Android API(28778): 認証に失敗しました。

理由はわかりません...誰かアイデアはありますか?

4

1 に答える 1

0

デバイスの場合 - 署名されたアプリケーション パッケージを作成する必要があります。
また、デバッグ証明書を生成するときは、アプリケーションに署名するために作成したキーストアを使用する必要があります (デバッグ キー ストアではありません)。
マニフェストでキーを更新し、実行してみてください。
お役に立てれば。

編集: keytool -v -list -keystore your_keystore

于 2013-01-28T11:26:43.503 に答える