I’m trying to test out the Google Maps sample code from the SDK, following the guide from their website.
After a bit of tinkering with settings, build paths and class paths, I’ve managed to get it to compile and deployed onto my device (physical device, not emulator). However, I get an Authorization Failed error in the logcat. And I have entered my API Key into the AndroidManifest.xml.
Apart from that change, none of the other code in the example has been changed.
I know I have added the support jar and referenced the library project correctly, since the application compiles. All I can think of is that somehow the signing certificate is wrong. During the packaging, I see this:
[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
So it’s using the debug.keystore.
Using
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android | grep SHA1
I find my debug certificate is:
SHA1: {KEY_HIDDEN}
So I add this onto the Google APIs console like so:
{KEY_HIDDEN};com.example.mapdemo
Since the sample app’s package is com.example.mapdemo
And I get an API key. In my case, it’s
AIzaSyAW8nihGO9uSW170YETE-Q1pPjFAW-B4M8
So I add it to my 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>
But yet, I keep getting:
01-28 10:54:39.423: E/Google Maps Android API(28778): Authorization failure.
And I don’t know why… Does anyone have any ideas?
For device – you will have to create a signed application package.
Also when you are generating the debug certificate you have to use the keystore that you have created for the signing the application(Not the debug key store ).
Update your key in manifest and try to run.
Hope this helps.
Edit:
keytool -v -list -keystore your_keystore