Android地图无​​法在内置的apk版本中运行

时间:2016-02-20 07:07:03

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

我开发了一个Android应用程序,里面有一个地图片段。我得到了#34;地图键"来自"谷歌开发者控制台"通过指定我的项目的包名和其他所需的详细信息。

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

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

如何解决此问题?当我构建apk但我不确定如何解决这个问题时,我绝对肯定它与密钥没有被正确选择有关!

更新1:

我使用你的所有建议想出了问题。我遗漏的部分是我在Android工作室中使用&#34生成一个新的密钥库;生成签名的apk"所以我的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并转到google开发者控制台并添加了项目的软件包名称和新的SHA-1
  3. 完成上述步骤后,我的地图会正确显示。 :)

    感谢大家帮我解决。

3 个答案:

答案 0 :(得分:0)

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

因此,为了生成映射键,如果处于开发阶段,可以使用调试键生成映射键。但是当您发布应用程序时,您必须使用发布密钥获取新的地图密钥,并将其替换为清单文件中的内容。

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

答案 1 :(得分:0)

当您在不创建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创建新的哈希密钥,并将其添加到开发人员密钥库。

Add two keys here

它会显示地图。

答案 2 :(得分:0)

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

匹配

在Android Studio中: 1.在窗口右侧单击Gradle 刷新 3. app --->任务---->机器人---> signingReport 4. SHA将显示在控制台

谷歌控制台上生成的SHA添加。 快乐映射