2012-05-21 33 views
1

我查看了所有与此相关的stackoverflow问题,但没有任何工作。对不起,如果这已被问到。Android地图API释放键不工作

我将谷歌地图api集成到我的应用程序中,并且在开发过程中一切正常。我得到一个基于debug.keystore文件的调试api密钥,它工作得很好。

然后,我继续前进,并根据我用来签署应用程序的密钥库文件得到了一个release api密钥。然而,我看到的只是灰色的地砖 - 地图没有显示出来。我的使用库标签位于我的应用程序标签清单中。我有清单中的互联网许可,以及android:debuggable =“false”(虽然这似乎没有改变任何东西)。

我还能遗漏什么?

+0

是否在为发布密钥库放入api密钥后进行了干净/重建? – Falmarri

+0

我有一个自动构建设置,它始终做一个干净的构建。 – Sanjeev

+0

你是如何编译这个的?你在Eclipse或其他IDE中运行它吗? – BlackHatSamurai

回答

-1

在你的MapView你必须指定你的ApiKey:

<com.google.android.maps.MapView 
    android:id="@+id/mapView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:apiKey="@string/mapKey" 
    android:layout_below="@+id/email" 
    android:clickable="true" 
    android:enabled="true" > 
</com.google.android.maps.MapView> 

其中映射键是你ApiKey(这里我在字符串定义它)。

+0

是的,我已经有了。正如我所提到的,它在开发中运行良好。只有当我将它切换到我遇到问题的release api密钥时。 – Sanjeev

+0

如果他在调试过程中工作,他已经正确地做到了这一点。 – Falmarri

0

我有同样的问题。

我如何已经解决了它:

因为调试密钥库产生的旧的API密钥不会释放密钥库工作,这是为您的发行,密钥存储新的API密钥重要(!)。这是过程如何做到这一点: https://developers.google.com/maps/documentation/android/mapkey#getfingerprint

在几句话:

  1. 使指纹(MD5)为密钥存储,例如通过此批处理文件:

    @echo off “c:\ Program Files \ Java \ jdk1.7.0 \ bin \ keytool.exe”-v -list -keystore my-release-key.keystore> my-release- MD5-fingerprint.txt

    呼应你的谷歌API密钥(MD5)保存到文件中我释放-MD5-fingerprint.txt

    暂停

  2. 转到其中生成的API谷歌的网站: http://code.google.com/android/maps-api-signup.html

然后将您的MD5指纹复制粘贴到相应的字段中,如下所示:9435:1E:43:49:87:73:BB:E6:A6:88:D7:20:F1:8E:B5 :98 (不允许多余的空格或附加符号)。