【问题标题】:Problem on loading maps from the apk从apk加载地图的问题
【发布时间】:2011-01-28 12:33:15
【问题描述】:

我已经创建了一个带有地图的应用程序。我已经按照我从网上找到的每一个步骤进行了操作,我已经拿到了密钥,并且该应用程序在模拟器上运行良好,我可以看到地图。但是当我加载将 apk 发送到我的手机上,地图未显示...:(..有什么想法吗?

【问题讨论】:

    标签: android map


    【解决方案1】:

    执行此操作(假设 keytool 在您的路径中):

    类型

    keytool -genkey -v -keystore my-release-key.keystore -alias release_alias -keyalg RSA -keysize 2048 -validity 10000

    You should see the following prompts:
    Enter keystore password:
    Re-enter new password:
    What is your first and last name?
      [Unknown]:  FirstName Surname
    What is the name of your organizational unit?
      [Unknown]:  FirstName Surname
    What is the name of your organization?
      [Unknown]:  FirstName Surname
    What is the name of your City or Locality?
      [Unknown]:  YourTown
    What is the name of your State or Province?
      [Unknown]:  YourTown
    What is the two-letter country code for this unit?
      [Unknown]:  UK
    Is CN=FirstName Surname, OU=FirstName Surname, O=FirstName Surname, L=YourTown, ST=YourTown, C=UK c
    orrect?
      [no]:  yes
    
    Generating 2,048 bit RSA key pair and self-signed certificate (SHA1withRSA) with
     a validity of 10,000 days
            for: CN=FirstName Surname, OU=FirstName Surname, O=FirstName Surname, L=YourTown, ST=Lond
    on, C=UK
    Enter key password for <release_alias>
            (RETURN if same as keystore password):
    [Storing my-release-key.keystore]
    

    此密钥库将位于您运行 keytool 命令的目录中,在我的情况下,它位于 C:\users\FirstName

    现在查看生成的 MD5 指纹,输入:

    keytool -list -alias release_alias -keystore c:\users\FirstName\my-release-key.keystore

    你会看到:

    Enter keystore password:
    release_alias, 08-Sep-2010, PrivateKeyEntry,
    Certificate fingerprint (MD5): **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**
    
        (** is substituted for my private information, you should see hex values)
    

    这是您从 RELEASE 密钥生成的新 MD5,将其提交到 Google API 密钥页面,您将获得回复:

    Thank you for signing up for an Android Maps API key!
    Your key is:
    1234567891bcdefg1234567891bcdefg (or whatever yours is)
    This key is good for all apps signed with your certificate whose fingerprint is:
    **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**
    

    将该键放入您的 XML 中

    【讨论】:

    • 这就是我正在做的,但它不起作用..我不认为这是错误的,但我不明白它在哪里堆叠
    • 我做了同样的事情,我只能在地图上看到灰色背景和我的图标..
    • 那么您现在是否从 Google 获得了两个不同的密钥? (一个用于调试,一个用于签名应用程序)
    • 是的。当我使用调试时,当我将设备用作模拟器但不在 dalvik 模拟器中时,应用程序正在加载地图。然后,我更改为签名密钥并且地图没有加载设备
    • 当您获得基于来自您的发行版 MD5 证书的 MD5 的 Google API 密钥时。您需要编辑您的 XML 以包含此键。然后重建项目,最后使用发布密钥库中的发布密钥(不要与 Google API 密钥混淆)对 APK 进行签名。在 Eclipse 中,您可以通过 Export/Export Android Application 执行此操作,并将生成的弹出窗口指向您的发布密钥库(而不是调试密钥库)。你是按这个顺序做的吗?
    【解决方案2】:

    您需要创建一个密钥来签署您的应用程序。 与你的这个密钥相比,你需要完成所有步骤,就像你使用模拟器自动生成的一样。

    当您从 eclipse 签署您的应用程序时,系统会询问您是否要创建一个密钥,创建一个并记住您存储它的位置。

    然后转到 C:\Program Files\Java\\bin" 并运行以下命令: 从命令窗口

    keytool.exe -list -alias androiddebugkey -keystore "C:\YourCreatedKey" -storepass android -keypass android

    复制 MD5 证书指纹并将您的网络浏览器导航到:http://code.google.com/android/maps-api-signup.html。按照页面上的说明完成申请并获取 Google Maps 密钥。

    在 xml 布局中使用 mapView 控件中的获取键。

    【讨论】:

    • 请问您有这方面的教程吗?
    • 我已经完成了这个code.google.com/intl/el-GR/android/maps-api-signup.html 并且我得到了我的证书指纹 (MD5)
    • 我已经这样做了,但它说密码是正确的。我应该在哪里写通行证?
    • 好的,我的查询很愚蠢..我有一个新的 md5,我在我的 xml 文件中更改了它,但我无法再次加载地图...我真的不明白我错在哪里了
    • 不,这个答案是错误的。您已经使用了 debugkey 的别名。您需要使用您使用 keytool -genkey 命令创建的发布密钥的别名
    猜你喜欢
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多