谷歌地图安卓API v2:授权失败

3

我正在尝试在我的应用程序上显示谷歌地图,但是它不起作用,并且出现了以下错误:

01-25 11:38:54.763: E/Google Maps Android API(30514): Authorization failure.

我目前正在使用发布应用程序到应用商店时所使用的SHA1证书指纹。

编辑: 我还在API控制台上启用了Google Map Android API v2。

我从这里的评论中读到,“签名算法必须是SHA1withRSA而不是SHA256withRSA”。然而,我是从Eclipse创建发布证书的,它是SHA256withRSA,并且我没有对它进行任何设置。我似乎也无法更改它。

如果签名算法引起了问题,有人能告诉我吗?如果是这样,我应该如何在Eclipse上更改签名算法?

3个回答

4
我找到了问题所在。
我一直在使用发布证书生成密钥,但是当我在手机上调试运行应用程序时,这种方式是不起作用的。我必须使用调试密钥库证书指纹来进行调试。
请记住保留2个密钥:
  1. 从调试密钥库中获取调试API密钥以在手机上运行时使用。

  2. 发布证书API密钥将在部署到Google Play商店之前签署应用程序时使用。


你说的“Release Cert Api key”是什么意思?请给我一些信息,因为我遇到了同样的问题。 - Harshid

0

使用相应的SHA检查您的API密钥是否存在,如果不存在,请使用相应的SHA重新生成它。如果您不知道如何生成,请尝试以下方法:

JAVA_HOME\bin > keytool -list -v -alias androiddebugkey -keystore "~\.android\debug.keystore" -storepass password(your_own) -keypass "password(your_own)"

请检查 清单 文件,如果您编写了两个像这样的元标记

<!--<meta-data-->
<!--android:name="com.google.android.maps.v2.API_KEY"-->
<!--android:value="AIzaSyBHghWPWutTiOxCJKll2WoCuVOQ5YotLiY" />-->

<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="@string/google_maps_key"/>

在我的项目中,任选一个进行注释,因为我使用了geo.API_Key,它将同时处理GEO和Google Maps。

更重要的是,将google-services.json文件导入到您的应用程序文件夹中。


0
请确认您已在Google API控制台中启用了Google Maps Android API v2

enter image description here


抱歉我之前没有提到,但是是的,在我遇到这个问题之前它已经打开了。 - lyk
是的,我已经按照这里的所有步骤进行了操作。这就是为什么我在想它的签名算法是否导致了问题。然而,由于这个问题,现在我无法再次尝试签名。 - lyk
尝试重新生成密钥并清理您的项目。 - GrIsHu
好的,但是正如我之前提到的,我突然遇到了很多lint错误,这些错误阻止了我重新生成密钥。 - lyk
我已经清理了它并重新生成了一个新的密钥,但仍然没有任何区别,仍然出现那个错误。我应该使用我的发布证书密钥还是使用调试证书? - lyk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接