ウェブサイトのガイドに従って、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): 認証に失敗しました。
理由はわかりません...誰かアイデアはありますか?