繁体   English   中英

确保启用了“Google Maps Android API v2”。 尝试实施 Google 地图时出现此错误

[英]Ensure that the "Google Maps Android API v2" is enabled. I am getting this error when I try to Implement Google Maps

我正在研究谷歌地图,我收到了这个错误。 我做了以下事情:

  1. 得到了我的 sha1 指纹。

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

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

    我的日志猫:<\/strong>

从错误中可以看出您没有为 android 启用谷歌地图 api。 要启用,

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

我希望它能帮助你。

其实我也有同样的问题。 我的应用程序运行,地图是空白的!

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

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


谷歌开发者控制台

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

在您的 Android 手机上

  1. 卸载应用程序。

安卓工作室

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

这些步骤对我来说非常有效。

我遇到了同样的问题,但在以下设置中:

我的实际开发是在 Windows 机器上进行的。 然后我买了一台 Mac 并认为我会在它上面开发。 我在 Mac 上安装了 Android Studio,从 Github 查看了我的项目,然后尝试使用我的 Android 手机运行它。 APK 安装无缝执行。 但是,一旦应用程序在手机上启动,即使我的应用程序的其余部分运行正常,GoogleMap 也不会显示。 然后我找到了这个链接 => https://github.com/react-community/react-native-maps/issues/69 ,去我的console.developers.google.com/并打开我的谷歌地图键,我有问题与。

我看到的是密钥仅限于Android应用程序。 但我正在开发一个 Android 应用程序,这怎么可能是问题? 无论如何,我将Key Restriction切换为None ,重新运行我的应用程序,并按应有的方式加载 GoogleMap。

您可能需要将新的 SHA-1 证书指纹添加到 API 密钥应用程序限制页面: 在此处输入图片说明

要为您的调试版本生成 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

当用于开发和生产的控制台凭据部分中的包名称不正确时,可能会发生这种情况,请确保您的包名称正确。 就我而言,当我更正地图变得可见时,包名称是错误的

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

  • 此外,您可能需要添加您的包名称和 SHA-1 签名证书指纹,以限制完全启用您的密钥的使用。

在此处输入图片说明

我将另一个测试项目中的密钥添加到主项目中。 然后我打开https://console.developers.google.com/并使用新的应用程序名称添加了该密钥(如Linh Dao所写),但没有帮助。

然后我添加了一个新活动(图库中的模板“Google 地图活动”)并打开了一个文件google_maps_api.xml 从那里我再次找到了像https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=06:F2:F4:CD...applicationName这样的链接。

我打开app/build.gradle ,找到applicationId值与applicationIdSuffix ,如果存在,并加入,例如进入com.example.myapp.debug 在链接中,我将 applicationName 更改为这个新值并打开了链接。

再次创建一个新项目,生成一个新密钥并对其进行编辑,写入包名和 SHA-1 指纹,就像@Linh Dao 写的那样。 然后保存了。 如果您稍后要找到该密钥,请在 Google 控制台中找到您的项目并打开凭据。

我删除了一个不必要的地图活动并在AndroidManifest保留

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

application标签中。

更新

几个月后,我在debug版本中遇到了同样的异常。 据我了解,我设置了错误的 API 密钥。

在 LogCat 中,我看到了这个异常:

在此处输入图片说明

然后我打开https://console.developers.google.com/ ,打开了一个需要的项目,点击“Maps SDK for Android”。

在此处输入图片说明

转到“凭据”选项卡(您还可以查看https://developers.google.com/maps/documentation/android-sdk/signup以获取信息)。 单击您的 API 密钥。

在此处输入图片说明

API key页面上,在Key restrictions ,设置Application restrictions 单击+ Add package name and fingerprint

从上面的 LogCat 输入您的包名称(例如,com.your_package.debug)。 从 LogCat (91:D6:...:F7) 输入您的指纹。 保存它。

正如@Ahamed Rasheed所写,我使缓存无效,清理并重建了项目。

另一个原因可能是secure.propertiesbuild.gradle的相对路径是错误的。 检查一下以防万一。

在 Android Error 中显示其自身错误。

在你的错误中检查第一个 V2 谷歌地图 API 的显示错误在谷歌开发者控制台中打开。

只需打开谷歌开发者控制台,你只需要在这个 API 上进行一些配置,就可以访问地图。

您可以从此处查看流程和更多详细信息。

使用 V2 谷歌地图

对于即使一切都已设置也像我一样看到这一点的任何其他人,请确保您在正确的项目中。 这些必须按项目完成。

我在另一台计算机上用 Android Studio 打开我的项目时遇到了这个问题。 更新 SHA-1 解决了这个问题。

Linux/MacOS

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

窗户

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

我认为您将发布版本的 SHA-1 密钥添加到了Console

测试时,您检查调试视图。

SHA-1 密钥在ReleaseDebug版本中有所不同。

当您存储 Google Maps API 密钥仅用于调试时,这通常发生在发布版本上。

  1. 当您添加谷歌地图 API 时,您可能会将其存储在res/values/google_maps_api(debug) 中 注意debug这个词,这意味着它只适用于debug而不是release
  2. 您必须根据自己的喜好将 API 密钥设置为 res/values/strings 或直接在清单元数据或 Gradle 中。
  3. 确保清单元数据引用的是您更改的那个,而不是 res/values/google_maps_api(debug) 中的那个

为了安全起见,不要忘记限制您的 API https://developers.google.com/maps/api-security-best-practices

我遇到了类似的问题,我按照以下步骤解决了问题:

1.转到 Google Maps Platform > Credentials 页面。 2.创建新的 API 密钥 3. 在密钥限制下,设置以下限制: 应用程序限制:选择 Android 应用程序。 单击 + 添加包名称和指纹。 输入您的软件包名称和 SHA-1 证书指纹。 例如:

com.example.android.mapexample

SHA-1 证书指纹 * :使用从 Logcat 获得的错误消息示例:BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66: 6E:44:5D:75

API 限制:

单击限制键。 从选择 API 下拉列表中选择适用于 Android 的 Maps SDK。 如果未列出适用于 Android 的 Maps SDK,则需要启用它。 要完成更改,请单击保存。

清理项目并运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM