2013-03-17 72 views
1

我試圖建立一個使用谷歌播放服務(第5版)和谷歌地圖API的Android版本2 Android應用程序。谷歌播放服務和谷歌地圖的Android API的版本2,授權失敗

我仔細閱讀在文件:

http://developer.android.com/google/play-services/maps.html https://developers.google.com/maps/documentation/android/start#installing_the_google_maps_android_v2_api

爲了肯定,我只是複製示例應用程序來自: 〜/ Android的SDK-LINUX /演員/谷歌/ google_play_services /樣品

在該代碼中,我只是改變了developper鍵和targetSdkVersion - 清單內(16> 17):

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.mapdemo" 
    android:versionCode="2" 
    android:versionName="2.1.0" > 

<permission 
    android:name="com.example.mapdemo.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature" /> 

<uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE" /> 
<!-- Copied from Google Maps Library/AndroidManifest.xml. --> 
<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="17" /> 

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
<!-- External storage for caching. --> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<!-- My Location --> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<!-- Maps API needs OpenGL ES 2.0. --> 
<uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true" /> 
<!-- End of copy. --> 
<application 
    android:hardwareAccelerated="true" 
    android:allowBackup="false" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/demo_title" > 
    <meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="XXXXXXXXXXXmyXkeyXXXXXXXXXXXXX" /> 

    <activity android:name=".MainActivity" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".BasicMapActivity" 
     android:label="@string/basic_map" /> 
    <activity 
     android:name=".CameraDemoActivity" 
     android:label="@string/camera_demo" /> 
    <activity 
     android:name=".CircleDemoActivity" 
     android:label="@string/circle_demo" /> 
    <activity 
     android:name=".EventsDemoActivity" 
     android:label="@string/events_demo" /> 
    <activity 
     android:name=".GroundOverlayDemoActivity" 
     android:label="@string/groundoverlay_demo" /> 
    <activity 
     android:name=".LayersDemoActivity" 
     android:label="@string/layers_demo" /> 
    <activity 
     android:name=".LocationSourceDemoActivity" 
     android:label="@string/locationsource_demo" /> 
    <activity 
     android:name=".MarkerDemoActivity" 
     android:label="@string/marker_demo" /> 
    <activity 
     android:name=".OptionsDemoActivity" 
     android:label="@string/options_demo" /> 
    <activity 
     android:name=".PolygonDemoActivity" 
     android:label="@string/polygon_demo" /> 
    <activity 
     android:name=".PolylineDemoActivity" 
     android:label="@string/polyline_demo" /> 
    <activity 
     android:name=".ProgrammaticDemoActivity" 
     android:label="@string/programmatic_demo" /> 
    <activity 
     android:name=".TileOverlayDemoActivity" 
     android:label="@string/tile_overlay_demo" /> 
    <activity 
     android:name=".UiSettingsDemoActivity" 
     android:label="@string/uisettings_demo" /> 
    <activity 
     android:name=".RawMapViewDemoActivity" 
     android:label="@string/raw_mapview_demo" /> 
    <activity 
     android:name=".RetainMapActivity" 
     android:label="@string/retain_map" /> 
    <activity 
     android:name=".MultiMapDemoActivity" 
     android:label="@string/multi_map_demo" /> 
</application> 

Google Play圖庫項目在項目屬性中設置正確。

我並沒有修改proguard.cfg標準文件。

啓動我的摩托羅拉XOOM「谷歌地圖API演示」與Android 4.1.2,並點擊「基本地圖」,將返回一個空白屏幕沒有任何地圖。

我的logcat包含:

03-17 14:07:13.450: E/Google Maps Android API(17988): Authorization failure. 

在我的API控制檯, 「谷歌地圖API的Android V2」 是的。

我創建了Android應用的一個關鍵,我的控制檯顯示:

Key for Android apps (with certificates) 
API key: XXXXXXXXXXXmyXkeyXXXXXXXXXXXXX 
Android apps: XXXXXXXXXXXmyXSHA1XXXXXXXXXXXXX;com.example.mapdemo 
Activated on: Mar 17, 2013 4:28 AM 
Activated by: you 

你明白什麼是錯的?

+0

您是否檢查過您允許的服務?去服務,看看谷歌地圖API v2和其他人都檢查。如果現在,然後檢查它們。 – 2013-03-17 13:52:44

+0

在Google Play Services API控制檯中,當您添加密鑰的哈希時,是否使用了正確的包名? (其中的軟件包名稱必須與您嘗試運行的應用程序的軟件包名稱相匹配。) – 2013-03-17 14:24:16

回答

1

我只是有這個問題,貼here。要能夠從IDE啓動,請將調試/開發SHA1指紋與從您自己的密鑰存儲庫製作的產品一起添加到API控制檯。

剛剛從debug.keystore(在~/.android目錄)都還<yourKeystore>.keystore命令行運行keytool -list -v -keystore <keystoreName>.keystore(當你簽署.apks使用)

這將會給你兩個SHA1指紋,他們都添加到了該Google Maps Android API v2谷歌雲控制檯,現在你有一個開發和一個生活。