地图磁贴是否仅在发布认证android时加载?

地图磁贴是否仅在发布认证android时加载?,android,maps,tile,Android,Maps,Tile,我已经检查了很多关于没有在android设备上加载地图块的问题。我无法修复与我相同的错误 我能够使用调试键在我的应用程序中的emulator和设备上测试我的mapsview。它工作得非常好。我已经为调试证书生成了一个maps api密钥 然后,我为我的发布证书及其MD5创建了一个MapsAPI密钥。我已将其添加到“地图”视图中,现在应用程序无法运行 我已经在清单文件的正确位置添加了android internet权限 我已经正确地生成了MD5指纹,就像我为调试键所做的那样 我的应用程序中只有一

我已经检查了很多关于没有在android设备上加载地图块的问题。我无法修复与我相同的错误

  • 我能够使用调试键在我的应用程序中的emulator和设备上测试我的mapsview。它工作得非常好。我已经为调试证书生成了一个maps api密钥

  • 然后,我为我的发布证书及其MD5创建了一个MapsAPI密钥。我已将其添加到“地图”视图中,现在应用程序无法运行

    • 我已经在清单文件的正确位置添加了android internet权限
    • 我已经正确地生成了MD5指纹,就像我为调试键所做的那样
    • 我的应用程序中只有一个mapview,所以我刚刚更改了布局xml中的api键
    • 为调试和发布生成密钥的唯一区别是:在发布证书的keytool命令选项中,我只被问过一次passswow,我认为这是存储过程。我的钥匙通行证从未被问过(实际上它们是一样的)
  • 我像这样生成了调试密钥库MD5

    $ keytool -list -alias androiddebugkey \
    -keystore <path_to_debug_keystore>.keystore \
    -storepass android -keypass android
    
     $ keytool -list -alias myalias_name -keystore "mykeystorepath"
    

    我还用android应用商店测试了该应用程序,但仍然不走运。我错过了什么?非常感谢大家的帮助,谢谢大家

    使用eclipse生成密钥并导出,也不要依赖调试变量()在运行时切换密钥,因为这一点目前已被破坏,您必须导出应用程序,获取md5,基于此新md5获取密钥,切换映射密钥,重新导出

    编辑:

    重要步骤


    好吧,这是多么愚蠢。一切都很好,除了我把键放在一个布局文件中,我没有使用它。可能是我疯了。这么快

  • 即使您只是导出已签名的应用程序,maps应用程序也将使用释放密钥。没有必要将应用程序放在Android应用商店中才能正常工作。堆栈溢出中有一些误导性的注释说明了这一点

  • keytool将请求密钥库的密码,并将使用该密码来解锁别名密钥。只有当情况不同时,它才会再次询问

  • 带有释放键的地图应用程序也可以与emulator一起使用。只需rmbr即可使用安装adb“”


  • 谢谢你的答复,但我完全不明白你的意思。我目前没有使用调试变量在键之间切换。在我完成调试之后,当我知道应用程序已经准备好发布时,(在eclipse中),我使用Android工具->导出带有发布密钥库和密钥的签名包。在进行导出之前,我更改了maps布局文件中的maps键(带有用于发布的键)。你能澄清我错在哪里吗?非常感谢。再次感谢您的澄清。我所做的正是你所描述的。还没有运气。还有其他出路吗?那么问题一定是你的“发布密钥MD5只需询问一次密码”是的,我在android应用商店中使用了这个签名和发布的应用程序。我不能改变它。希望被询问一次密码不是问题。不确定还有什么地方可能出错,这仍然令人困惑。事实上,我今天想检查eclipse构建是否正常工作。因此,在导出签名的apk后,我将其作为zip打开。我能够查看我的布局文件,它正确地包含了releasemaps键。然后,我使用jarsigner验证了apk上的签名,这也指出了发布证书。我还检查了“地图启动”页面,但正如预期的那样,它为相同的MD5提供了相同的“地图”键。好的,我的问题更清楚一些。我对keytool不要求第二次输入密码的担忧在这里得到了解答..-->如果未在命令行中指定选项,则选项周围的括号表示提示用户输入值。(对于-keypass选项,如果未在命令行上指定该选项,keytool将首先尝试使用密钥库密码恢复私钥/密钥,如果失败,则将提示您输入私钥/密钥密码。)
    1) $ keytool -list -alias alias_name -keystore my-release-key.keystore (NOT DEBUG KEY)
    2) https://developers.google.com/android/maps-api-signup
    3) update code with new key
    4) clean project & build (important to clean, eclipse doesn't always do it)
    5) export with eclipse