确保“Google Maps Android API v2”已启用。当我尝试实现Google Maps时,出现了这个错误。

65

我正在处理谷歌地图时出现了错误。我已经完成以下操作:

  1. 获取我的SHA1指纹。

  2. 注册我的项目并获得项目密钥。

我不知道如何启用Google Maps Android API v2,因为我尝试的所有链接都已过时,而且Google已更改了其网站设计。请帮帮我。我已经在这上浪费了很多时间。

我的Logcat:

enter image description here

Authorization failure.  Please see developers.google.com/maps/documentation/android-api/start for how to correctly set up the map.
E/Google Maps Android API: In the Google Developer Console (console.developers.google.com)


 Ensure that the "Google Maps Android API v2" is enabled.
 Ensure that the following Android Key exists:
   API Key: AIzaSyBK8rKr9lCRLhzv68I4Q26G9pHHO******

2
不要忘记“清理项目”!在更改API密钥后,它解决了我的问题。 - salmanseifian
这是我解决这个问题的方法。https://dev59.com/4bTma4cB1Zd3GeqP0hEB#67215294 我希望它对你有用。 - King Martini Beatz
17个回答

81

从错误信息可以看出,您没有为Android启用Google地图API。 要启用,请按以下步骤操作:

  1. 登录Google开发者控制台
  2. 从左侧面板中选择“库”选项。
  3. 现在您可以看到所有API列表,进入“Google Maps API”并选择“Google Maps Android API”。
  4. 现在您可以看到启用/禁用API的选项。启用它。

希望这能帮助您。


24
我也遇到了同样的问题。在谷歌开发者控制台中,我的Google Maps API已启用。但是,当我查看“所有版本API”选项卡时,只能看到v1版本。我该如何启用API的v2版本?非常感谢任何帮助,因为我已经遇到这个问题很长一段时间了。 - devgeek
@devgeek 你找到任何解决方案了吗? - Pranita
6
我找不到Google Maps Android API,我只找到“Maps SDK for Android”,它们是一样的吗?请帮我确认一下。 - Andreas Foteas
3
@AndreasFoteas 你说的没错,现在它已经被重命名为“Maps SDK for Android”。 - user5305519
解决了我的问题! - Al Mamun
显示剩余3条评论

36

实际上,我也遇到了同样的问题。我的应用程序运行时地图是空白的!

首先检查您的Android手机上是否安装了 Google Play

我在API密钥限制方面遇到了问题


Google开发者控制台

  1. 登录开发者控制台。
  2. 在您的仪表板导航菜单(左侧)中选择 API和服务 > 凭据。
  3. 因此,您将被重定向到凭据页面,在该页面上,您可以查看所有创建的API密钥(https://console.cloud.google.com/apis/credentials
  4. 标识您的项目API密钥,然后单击 编辑API密钥
  5. 在那里,您可以查看 密钥限制
  6. 从那里删除所有应用程序限制和API限制。

在您的Android手机上

  1. 卸载该应用程序。

Android Studio

  1. 构建 > 清理项目。
  2. 构建 > 重新构建项目。
  3. 运行IT

这些步骤对我完美地起作用了。

  • 参考资料 GitHUbGoogle Issue Tracker
  • 意思是“谷歌问题跟踪器”,用于跟踪和管理谷歌产品的问题和错误。

11

我遇到了相同的问题,但是在以下设置中出现:

我实际的开发是在Windows机器上进行的。然后我买了一台Mac,并打算在其上进行开发。我在我的Mac上安装了Android Studio,从Github检出了我的项目,然后尝试使用我的Android手机运行它。APK安装顺利完成,但是一旦应用程序在手机上启动,GoogleMap就无法显示,尽管我的应用程序其余部分正常工作。然后我找到了这个链接=> https://github.com/react-community/react-native-maps/issues/69,去了我的console.developers.google.com/并打开了我遇到问题的Google Maps密钥。

我看到的是该密钥仅限于Android应用程序。但我正在开发一个Android应用程序,这怎么可能是问题呢?不管怎样,我将Key Restriction切换为None,重新运行我的应用程序,GoogleMap加载正常。


有趣。那么,他们是否认为它是苹果设备,因为它在苹果设备上进行调试? - DBIT
我一点头绪也没有 :) 自上次查看谷歌开发控制台以来,感觉已经过了一个世纪。 - felixy
不建议移除限制。您需要生成一个新的密钥SHA-1指纹。一旦生成并上传到控制台,即使已安装的版本也将立即生效。 - kelalaka

6
您可能需要在API密钥应用程序限制页面中添加新的SHA-1证书指纹: enter image description here 为您的调试版本生成SHA1证书指纹,可以使用Java JRE的keytool工具,如下所示的命令:
C:\Program Files\Android\Android Studio\jre\bin>keytool -list -v -keystore C:\Users\linhd\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

是的,我更换了电脑,因此需要生成一个新的SHA-1指纹。 - Brayan Loayza

3
  • 确保在API控制台中启用了Maps SDK for Android

  • 另外,您可能需要添加包名和SHA-1签名证书指纹,以限制使用您的密钥时的范围,从而完全启用该密钥。

enter image description here


这是正确的答案,我们需要在开发者控制台中启用Android地图SDK,然后才能使用地图。 - Parthan_akon

2

当控制台凭据部分的软件包名称不正确时,可能会出现这种情况。为了开发和生产,请确保您的软件包名称是正确的。在我的情况下,当我更正软件包名称后,地图变得可见。


1

我认为您将发布版本的SHA-1密钥添加到了控制台中。

在测试时,您应该检查调试视图。

发布版本和调试版本的SHA-1密钥是不同的。


1

另一个原因可能是在 build.gradlesecure.properties 的相对路径有误。为了确保,请检查它。


1
这通常发生在存储Google Maps API密钥进行调试的发布版本上。
  1. 当您添加Google Maps API时,可能已将其存储在res/values/google_maps_api(debug)中。请注意debug一词,这意味着它仅适用于调试而非发布
  2. 您需要将API密钥设置为res/values/strings或直接在清单元数据或Gradle中设置,具体取决于您的喜好。
  3. 确保清单元数据引用您更改的内容,而不是res/values/google_maps_api(debug)中的内容。
出于安全考虑,请勿忘记限制您的API https://developers.google.com/maps/api-security-best-practices

1
一键解决方案:Android Studio > Build > Clean Project。

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