Android Google 地图在已签名的 APK 中为空白

Android Google Maps is blank in Signed APK

我有一个 Google 地图 API 密钥,它在我的 debugrelease google_maps_api.xml 文件中。

在模拟器或设备上调试时,应用程序和其中的地图可以正常工作。但是,当我生成签名的 APK 并将其安装到真实设备上时,地图是空的,就好像没有指定 Google 地图 API 键一样。

我尝试过使用 但似乎没有用,至少就我在 Google Play、Android 工作室和发布版本方面的经验而言是这样。

我进入了 Google Play 控制台和 Let Google handle my certificates(或类似的)。我现在有一个包含 MD5 certificate fingerprint SHA-1 certificate fingerprint SHA-256 certificate fingerprint 和一个标题为 [DOWNLOAD CERTIFICATE] 的按钮(应用程序签名证书)的列表,但不知道如何处理这些......如果我认为在这一点上对他们做任何事情。

接下来我该怎么做才能让地图显示在发布签名的 APK 文件中?我应该在我的项目中的某个地方插入应用程序签名证书吗?

我还没有打算发布。我只想测试发布版本的性能差异等。

更新 1 我已经按照以下步骤进行操作,现在有了我的证书指纹,但是如果有的话,我应该把它放在哪里?



Holly Molly,我最终发现 dubug google_maps_api.xml 中的 link 包含调试 SHA-1,它传递给 Google Cloud Platform将使用 GoogleMaps api 密钥的调试版本列入白名单。

因此,这意味着如果您构建发布版 APK,SHA-1 将有所不同。

您如何获得 Release SHA-1?您执行 Build->Generate Signed Bundle 并按照步骤操作。记下 .keystore 文件的保存位置。我用的是台式机。

完成后,请查看我问题中的屏幕截图。它声明使用 keytool -list ...etc 查看生成的 APK 的 SHA-1。

显示 SHA-1 后,转到 Google 云平台,进入 APIs,然后进入 Android 的 Maps SDK。单击您希望使用 API 的应用程序的编辑图标。您现在应该看到一个标题为 API restrictions 的列表,其中应该有一个列表已经包含用于您的调试版本的 SHA-1。

从终端复制您的 SHA-1,(通过 运行 找到 keytool -list ...etc)命令。将其作为新 'item' 粘贴到 Android 应用限制列表中。保存,如果有保存按钮。

你应该可以从这里开始了。


或者您可以 un-restrict 您的 API 密钥用法,不推荐这样做。