2

我按照步驟herehere在我們的團隊項目中創建了一個MapView,我們與svn同步。按照步驟,MapView運行平穩,但只在我的筆記本電腦上。我的項目成員總是得到Android Google Maps API v2:不同筆記本電腦的授權失敗

02-06 13:27:37.327: E/Google Maps Android API(19490): Authorization failure. 

當打開MapView。所以我刪除了舊的和產生新的SHA1指紋上的另一臺筆記本電腦一個新的谷歌API密鑰與我的谷歌帳戶:

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

所以現在它的工作在哪裏產生的SHA1指紋的其他筆記本電腦但是當我嘗試在我的筆記本電腦上運行該項目時,我現在正在獲取

02-06 13:29:51.280: E/Google Maps Android API(20262): Authorization failure. 

錯誤。

我們沒有使用proguard-project.txt,我們嘗試了不同的設備,其中google-play-services已安裝,並且包含/extras/google/google_play_services/libproject/google-play-services_lib作爲庫。我們也嘗試生成多個API密鑰,但只有一個正在工作。

我們做錯了什麼?我們是否必須使用不同的Google帳戶來創建個人密鑰?

+0

感謝您提出這個問題。它有助於爲我自己的問題找到解決方案! :-) –

回答

2

你有兩種選擇。

  1. 爲您擁有的每個設備添加一個單獨的行到api項。

  2. 將api密鑰解壓縮爲一個文件(例如,map_key.xml),並從AndroidManifest.xml引用此文件。

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

    將此文件添加到您的.gitignore - 所以現在每個項目成員都可以用自己的密鑰覆蓋。

2

引述谷歌API控制檯:

API請求直接從客戶端的Android 設備發送給谷歌。 Google會驗證每個請求來自Android 應用程序,該應用程序與下面列出的證書SHA1指紋和 軟件包名稱之一相匹配。您可以使用以下命令查詢 你的開發者證書的SHA1指紋[...]

一個SHA1憑證指紋和軟件包名稱(用分號隔開) 每行。

亮點這裏每行一個

Screenshot of Google Maps API Key - Configure Android Key`

對於您建立自己的應用程序,你必須生成一個SHA1指紋和API控制檯添加它的每個筆記本電腦。