1

当我尝试加载 supportMapFragment 时,我在 logCat 中收到此消息:

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)。我在清单中拥有所有必要的权限,并且我的网络连接很好,所以不知道为什么它可以在一部手机上而不是另一部手机上工作。有任何想法吗?

4

5 回答 5

4

如果您在清单中的所有权限设置和 API 密钥都是正确的,那么如果您得到failed to load map,这可能是因为对之前使用的错误值的某种缓存。在这种情况下,请在您遇到此问题的手机上完全卸载该应用程序,然后重新安装。

如果您在不卸载应用程序的情况下重新安装,则错误将持续存在。测试这种效果的另一种方法是,如果您有一个正在运行的地图应用程序,那么即使您将 API 密钥设置为错误,使用错误密钥的新应用程序也将继续工作,除非您卸载该应用程序并重新安装错误的应用程序

于 2013-07-16T18:29:48.333 回答
2

对我来说,缺少许可:

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

添加它解决了问题

于 2013-07-28T15:00:32.193 回答
2

在前面由 tony 描述的情况下,其他所有配置都正确,但您仍然会收到此错误,而不是卸载和安装,您可以简单地清除应用程序数据。

我找到了可靠地重现此问题和解决方案的步骤(对我有用):

  • 安装发布版本,由您的发布证书签名,并使用为您发布的证书颁发的地图 API 密钥。一切正常。
  • 替换为调试版本,但“忘记”将地图 API 密钥从发布更改为调试。是的,这是错误的并且不应该工作,但是在切换构建时会发生这种情况。轻松解决你的想法……哈!
  • 通过将其更改为为您的调试证书颁发的地图 API 密钥来修复调试重新构建中的地图 API 密钥。使用现在正确的调试映射 api 密钥重新安装调试版本。期望地图现在可以工作,但事实并非如此。问题似乎出在设备本身上。
  • 清除应用程序数据和相同的安装再次显示瓷砖!

编辑

此问题可能已在以下位置修复:https ://code.google.com/p/gmaps-api-issues/issues/detail?id=6099 如果是这样,我仍然不清楚哪个版本的 google-play -services API 包含此修复程序。

于 2013-09-11T12:42:10.190 回答
1

您正在测试应用程序的设备需要登录 Google 帐户。您在所有经过测试的设备上都有活动帐户吗?所有设备上都安装了播放服务吗?

于 2013-07-16T14:33:50.790 回答
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;
        }
    }
 });  
于 2018-02-21T06:54:24.300 回答