【问题标题】:Android map not working in built apk versionAndroid地图在内置apk版本中不起作用
【发布时间】:2016-02-20 07:07:02
【问题描述】:

我开发了一个 android 应用程序,其中包含一个地图片段。通过指定我的项目的包名称和其他必需的详细信息,我从“谷歌开发者控制台”获得了“地图密钥”。

我通常通过将实际设备连接到我的机器来测试我的应用程序,一切正常。但是当我将 apk 构建为调试或发布版本并将 apk 安装在相同/不同的设备上时,它根本不显示地图。

我使用 Android Studio 进行开发和构建过程。

我该如何解决这个问题?我确定这与我构建 apk 时未正确选择密钥有关,但我不确定如何解决此问题!

更新 1:

我根据您的所有建议找出了问题所在。我缺少的部分是我正在使用“生成签名的 apk”在 Android 工作室中生成一个新的密钥库,以便我的 apk 使用新的 SHA-1 进行签名,但我没有告诉谷歌它需要考虑我的新SHA-1。

所以我做了以下

  1. 我进入终端/命令提示符,得到了新创建的 SHA-1。我使用了命令 "keytool -list -keystore my_key_store_name.jks -alias my_key_store_alias_name" 。这显示了我的 SHA-1
  2. 我复制了 SHA-1 并进入谷歌开发者控制台并添加了项目的包名和新的 SHA-1

经过以上步骤,我的地图就正常显示了。 :)

感谢大家帮我解决这个问题。

【问题讨论】:

标签: android google-maps android-studio android-location


【解决方案1】:

当您在不创建 apk 的情况下运行应用程序时,它会将您的调试密钥库作为密钥库,并且您已在开发者控制台上设置了该密钥。

当您创建 apk 时,该 apk 将使用不同的密钥库(即您的应用程序密钥库)创建。

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

keytool -list -v -keystore kestore_location -alias kestore_alias_name -storepass android -keypass kestore_pasword

因此使用该密钥库创建的 has-key 未在开发者控制台上设置。

您只需要使用 app kestore 创建新的 hash-key 并将其添加到 developer keystore。

它会显示地图。

【讨论】:

  • 我想我无法理解某些东西。当我开始项目时,我做了以下事情 1. 使用我的 SHA-1 密钥进入开发者控制台并生成一个密钥。 2. 将我的 android_manifest 文件中的占位符替换为上面生成的实际密钥 3. 通过将设备连接到我的机器并“运行”主要活动来测试应用程序。和地图作品。现在在第 3 步之后我该怎么办?如果我没有正确理解您的回答,我真的很抱歉。我对地图的东西完全陌生,在这里感到困惑!
  • 只需使用您的发布应用程序密钥库使用上述命令创建新的哈希密钥。在开发者控制台上添加它。它会起作用的。
【解决方案2】:

在构建您的应用程序并直接从工作室安装时,工作室将使用调试密钥。但在发布应用程序时,apk 必须使用发布密钥而不是调试密钥进行签名。Android SDK 工具会在以下情况下生成此发布证书你做一个发布版本。

所以为了生成map key,如果你处于开发阶段,你可以使用debug key来生成map key。但是当您发布应用程序时,您必须使用发布密钥获取新的地图密钥并在清单文件中替换它。

关于签署您的应用程序,请参阅此link 和此so

【讨论】:

    【解决方案3】:

    我认为 SHA 存在问题。请再次检查 SHA。 按照以下步骤查找正确的 SHA 并与控制台 SHA 匹配

    在 Android Studio 中: 1. 在窗口右侧,只需点击 Gradle 2.刷新 3.app--->task---->android--->signingReport 4. SHA 将显示在控制台上

    在谷歌控制台上生成的 SHA 添加。 快乐制图

    【讨论】:

    • 我照你说的做了。我将我的 android studio 中显示的 SHA1 与开发人员控制台中的 SHA1 进行了比较。他们都匹配。但我在我的 android studio signingReport 中注意到的另一件事是它具有“variant:debug”的配置详细信息,但对于发布它显示“variant:release config:none”。所以我猜它缺少发布的配置???
    猜你喜欢
    • 1970-01-01
    • 2020-02-16
    • 2016-09-07
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    相关资源
    最近更新 更多