Google 地图未在普通设备上加载但在测试设备(真实设备)上加载

Google map not loading on normal devices but loads on test device(real device)

我的 android 应用程序中有一个 google 地图,我从 Google api 控制台获得了我的应用程序中的 api 键,它成功地将地图加载到我的测试设备和我与之共享 apk 文件的那些设备,但是在我在 Play 商店上发布应用程序并且用户下载该应用程序之后,地图不会加载。 这是应用程序在测试设备上正常运行时的外观。

这是下载应用后的样子

Api 控制台

我是否遗漏了任何步骤?

问题是您没有在 google api 控制台中添加签名 apk 的 SHA1 密钥。

这样做-

在创建用于生产的签名 apk 时,复制签名版本的新 SHA1 密钥。

在签名过程中,类似于下面概述的输出将出现在控制台面板中:

[2013-06-13 10:34:39 - ReleaseTest] New keystore C:\Users\nas\Documents\AndroidReleaseAPK\ReleaseTest.apk has been created.
[2013-06-13 10:34:39 - ReleaseTest] Certificate fingerprints:
[2013-06-13 10:34:39 - ReleaseTest]   MD5 : FA:65:D--------------
[2013-06-13 10:34:39 - ReleaseTest]   SHA1: D1:E-------------------

或者它也会出现在弹出窗口中,您将在签名之前最终命名您的构建。

使用此 SHA1 在 api 控制台创建新密钥并将其包含在您的应用程序中。 地图将加载成功。

编辑:-完成上述步骤后,不要在eclipse中右击并再次运行项目,这将使应用程序从它的默认 sha1 密钥。签署应用程序后,手动将已签署的 .apk 复制粘贴到您的设备。这将使它起作用。

新来的朋友可以使用以下内容:

keytool -list -printcert -jarfile app.apk

将新的 SHA1 添加到 api 控制台,地图应该开始显示地图和标记。

如果您尝试过其他建议,请注意您的项目中有 2 个 google_maps_api.xml 文件,分别位于 src/debug 下src/release/。确保后者有一个 Google 地图 API 密钥,以便您签名的 APK 版本正常运行。

项目文件截图: