谷歌地图Android API密钥库

3
在我的应用中,我使用地图来显示当前位置。然后,我使用Google Maps Android API v2(而不是Google Maps API)将此功能添加到我的应用程序中。
当我在eclipse中开发我的应用程序时,一切都很好。我使用调试密钥库创建了一个Android密钥,并在清单中使用它,我可以成功执行我的应用程序,并且可以移动和使用地图。在这种情况下,我没有日志错误(只有典型的“未找到Google Play服务资源。请检查您的项目配置以确保包含资源”)。
现在,当我将我的应用程序上传到Google Play开发者控制台时,在测试版中它可以正常工作,但是当我发布时,地图会变成灰色背景并且无法工作。日志会给我这个错误:
09-23 14:05:46.475: E/Google Maps Android API(5485): Authorization failure.  Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map.
09-23 14:05:46.475: E/Google Maps Android API(5485): Ensure that the following correspond to what is in the API Console: Package Name: gc.yy.xxxx, API Key: AIza*******************************RDEI, Certificate Fingerprint: 472D********************************7218 (keystore use to sign the package)

然后我决定在我的eclipse项目中使用那个密钥库,所以我创建了一个新的Android密钥(47:2D:**********************:72:18;gc.yy.xxxx给我AIza*****************Qm4Q密钥),并将其粘贴到清单文件中。我运行该项目,结果又出现了灰色背景。日志显示以下错误:

09-23 14:10:45.307: E/Google Maps Android API(5585): Authorization failure.  Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map.
09-23 14:10:45.317: E/Google Maps Android API(5585): Ensure that the following correspond to what is in the API Console: Package Name: gc.yy.xxxx, API Key: AIza*******************************Qm4Q, Certificate Fingerprint: CC4B********************************A917 (debug keystore)

我不确定问题是否与密钥库有关。我在我的地图中使用debug.keystore(我不能使用另一个,我不知道是否不可能),并使用我创建的密钥库来签署我的应用程序包。这似乎是一个无用的API密钥无限循环...
提前致谢!
编辑:最终我通过添加每个API密钥的2个元数据块来解决了它,也就是说,我的清单如下:
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="AIza*******************************RDEI" />
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="AIza*******************************Qm4Q" />

最后,我的应用程序已经在Google Play上发布了!:)


你是否生成了应用程序的密钥库(keystore),而没有使用debug.keystore? - Sankar Ganesh PMP
你尝试过在安装另一个API密钥之前,使用一个API密钥完全卸载应用程序以避免旧API密钥的缓存问题吗?(参考链接:http://stackoverflow.com/questions/17679317/android-google-maps-v2-authentication-error/17684309#17684309) - tony m
你需要两个不同的API密钥:调试密钥和发布密钥。以下是如何生成它们的方法:http://chocotech.blogspot.com/2012/10/get-debug-key-and-release-key-for.html - svlzx
1
请将您的解决方案编写为答案,而不是对问题的编辑。 - Flexo
2个回答

0
您需要通过Google API控制台将非调试密钥库注册到Google Maps API。

0

我使用了两个不同的API密钥(一个用于开发,一个用于发布)。最终证明这样做是愚蠢的,因为你可以将多个应用哈希附加到一个密钥上。因此解决方案就是在code.google.com/apis/console中向开发API密钥添加发布哈希(以实现向后兼容),并向发布API密钥添加开发哈希(以便更轻松地进行开发)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接