Android Google Maps V2身份验证错误

时间:2013-07-16 14:28:54

标签: android google-maps-android-api-2

当我尝试加载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)。我在清单中拥有所有必要的权限,我的网络连接很好,所以不确定为什么它可以在一部手机上工作而不是另一部手机。有什么想法吗?

5 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

对我来说,失去了许可:

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

添加它修复了问题

答案 2 :(得分:2)

如前所述,tony之前描述的其他所有内容已正确配置但您仍然遇到此错误,而不是卸载和安装,您只需清除应用程序数据。

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

  • 安装发布版本,由您的发布证书签名,并为您颁发发布证书的地图API密钥。一切正常。
  • 由调试版本替换,但“忘记”将地图API密钥从发布更改为调试。是的,这是错误的,不应该工作,但这在切换构建时会发生。很容易解决你的想法......哈!
  • 通过将maps api key更改为为调试证书颁发的maps API密钥,将其修复为调试重构。使用现在正确的调试映射api密钥重新安装调试版本。期待地图现在可以正常工作,但事实并非如此。问题似乎出现在设备本身上。
  • 清除应用数据,同样的安装会再次显示磁贴!

修改

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

答案 3 :(得分:1)

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

答案 4 :(得分: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;
        }
    }
 });