2013-07-16 45 views
1

我得到的logcat這個消息時,我試圖加載supportMapFragment:Android的谷歌地圖V2驗證錯誤

Failed to load map. Error contacting Google servers. This is probably an authentication  issue (but could be due to network errors). 

我相信我的關鍵是有效的,因爲它的工作原理一部手機(GALAXY S)上,但不爲較舊的手機(optimus v)和較新的手機(galaxy s3)工作。我在清單中擁有所有必要的權限,並且我的網絡連接正常,因此不確定爲什麼它可以在另一個電話上工作。有任何想法嗎?

+0

如果你反安裝,會發生什麼,然後安裝這些設備上的應用程序? –

回答

1

您正在測試應用程序的設備需要有已登錄的Google帳戶。你的所有測試設備上都有活動賬戶嗎?所有設備上是否安裝了播放服務?

+0

所有設備都通過不同的帳戶登錄到Google帳戶。谷歌播放被安裝在所有這些。 – user1200083

+0

它們也都在調試模式下運行。不知道我是否需要不同的密鑰。它工作的設備已登錄到我註冊密鑰的帳戶。 – user1200083

+0

您的情況令我想到的是,它可以在一臺設備上完美運行,但不會在另外兩臺設備上運行!您註冊了您簽署應用程序的證書的密鑰(因此它不取決於註冊密鑰的用戶)。我認爲它永遠是你的調試或你的發行證書。或者,您是否爲每個設備部署了不同版本的應用程序? – a11n

4

如果清單中的所有權限設置和API密鑰都是正確的,那麼如果您得到的是failed to load map,可能是因爲某種緩存了以前使用的錯誤值。在這種情況下,請在您遇到此問題的手機上完全卸載應用程序,然後重新安裝。

如果您不卸載應用程序而重新安裝,那麼錯誤將會持續。測試這種效果的另一種方法是,如果您的地圖應用程序正在運行,那麼即使您使API密鑰錯誤,具有錯誤密鑰的新應用程序仍會繼續工作,除非您卸載應用程序並全新安裝錯誤的應用程序

2

對我來說是許可的情況下丟失:

<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 

將它解決了這一問題

+0

超級,它也適用於我:) – Madhu

2

的情況下,由託尼前面,其中一切配置正確,但你仍然可以得到這個錯誤描述,而不是卸載和安裝,你可以簡單地清除應用程序n數據。

我發現的步驟,可靠地重現此問題和解決方案(對我的作品):

  • 安裝發佈版本,你發佈的證書與發行爲你釋放證書Maps API密鑰簽名。一切正常。
  • 替換爲調試版本,但「忘記」將地圖API密鑰從發佈更改爲調試。是的,這是錯誤的,不應該工作,但是這種情況發生在切換構建時。輕鬆解決你的想法...哈!
  • 修改調試重新構建中的maps api鍵,方法是將其更改爲爲調試證書頒發的maps API鍵。用現在正確的調試映射API密鑰重新安裝調試版本。預計地圖現在可以工作,但他們沒有。問題似乎在設備本身。
  • 清除應用程序數據和同一安裝再次顯示磁貼!

編輯

這個問題可能已修復:https://code.google.com/p/gmaps-api-issues/issues/detail?id=6099 如果是這樣,它仍然是我不清楚其中谷歌播放服務API的版本包含此修復程序。

+0

非常感謝您指出這一點。 – Reynard

0

如果您的項目出現hostnameverifier問題,也會出現此問題。 我使用了以下解決方案:

HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { 
    @Override`enter code here` 
    public boolean verify(String hostname, SSLSession arg1) { 
     if (hostname.equalsIgnoreCase(arg1.getString("")) { 
      return true; 
     } else { 
      return false; 
     } 
    } 
});