Google 地图 API 发布版本中的键不起作用

Google Maps API Key in release build doesn't work

我目前正在为 Android 开发一个应用程序,我正在使用 Google 地图 API。在开发人员控制台中,我添加了我的 SHA1 证书打印,然后是我的包名称。 即使我使用 keytool 打印了这个 SHA1 证书,我也无法访问地图。 我进行了大量搜索,但每个主题都让我找到了错误在开发者控制台中的错误 API 键的答案。 但是我拿了正确的SHA1,我的证书之一。

提前致谢!

我遇到了同样的问题,非常令人沮丧。我最终做的是获取我使用我的发布密钥库创建的密钥并将其放入 google 开发人员控制台。然后,将以下内容添加到 android 清单中。

<meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="KEY GOES HERE"/>

我确定您已阅读相关文档,但请务必严格按照发布证书的说明进行操作。

https://developers.google.com/maps/documentation/android/signup

您也可以按照 google_maps_api.xml 文件中为您生成的 link 进行操作。这会自动执行将密钥输入开发人员控制台的过程。但是,请确保您仍然将该元数据值添加到您的清单中。

文件 google_maps_api.xml 必须在 res/debug/ 和 res/release 下。编辑器只显示您当前的 运行 配置,默认情况下是调试的,如果您没有观察文件夹名称后的(调试)注释,就会有点误导。将 google_maps_api.xml 复制到两个文件夹中并编辑以确保它们具有每个构建的正确 API 键。

Android Studio 还在发布文件夹中为 google_maps_api xml 文件创建了一个 TODO,并让您了解发布前所需的程序。另外请不要手动更改清单中的密钥。当您切换到发布变体时,密钥会在清单中自动更新。

无论如何都要这样做,

  1. 转到@Andrew Brook 提到的link

  2. 单击 "Get a key" 并继续

  3. 创建新项目或使用现有项目
  4. 指定选项并单击按钮
  5. 如果您之前已经创建了一个,比方说调试,然后转到创建一个新的 api 密钥 Image here
  6. 添加需要的名字,点击"Add package name and fingerprint"
  7. 添加您的应用程序包名称和 SHA-1 密钥(使用 java/jdk../bin/ 中的密钥工具生成它) Image here
  8. 您将 "release" 变体 API 密钥添加到发布文件夹的 google_maps_api.xml 中。

我的地图在发布模式下显示,但在我发布到 Play 商店后它没有显示。

我已经提到了 Google 开发者控制台的调试和发布证书 SHA-1 密钥,但是从 Play 商店下载应用程序后处于发布模式的地图仍然没有显示。

这是问题所在: Google 已为此应用启用 Play 应用签名

转到发布管理 -> 应用签名 -> 并从应用签名证书

复制SHA-1 证书指纹

将这个新复制的 SHA-1 指纹粘贴到 Developer Console,发布模式下的映射将显示。

您必须在 Google 开发者控制台中启用 SHA 密钥 所以在第一次去发布管理获取你的应用程序 SHA 密钥(第一个) 然后关注这个 link

 https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=(Your SHA KEY)%3B(YOUR PACKAGE NAME)

现在它将启用 API。 现在使用新密钥更新您的应用程序。 它会起作用。