3

在我的应用程序中,我使用地图来显示当前位置。然后,我使用 Google Maps Android API v2(我不使用 Google Maps API)将此功能添加到我的应用程序中。

当我在 Eclipse 中开发我的应用程序时,一切正常。我使用调试密钥库创建了一个 Android 密钥,并在清单中使用它,我可以很好地执行我的应用程序,并且可以移动和使用地图。在这种情况下,我没有日志错误(只有典型的“未找到 Google Play 服务资源。检查您的项目配置以确保包含资源”)。

现在,当我将我的应用程序上传到 Google Play 开发者控制台时,在 beta 测试中它可以工作,但是当我发布时,地图会变成灰色背景并且无法工作。日志给了我这个错误:

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 密钥的无限循环……</p>

提前致谢!

编辑:我终于通过添加每个 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 中有我的应用程序!:)

4

2 回答 2

0

您需要通过 Google API 控制台将您的非调试密钥库注册到 google maps API

于 2013-09-23T13:34:05.940 回答
0

我使用了两个不同的 api 密钥(一个用于开发,一个用于发布)。最后:这很愚蠢,因为您可以将多个应用程序哈希附加到一个键上。因此,这就是解决方案,只需在 code.google.com/apis/console 上将发布哈希添加到开发 api 密钥(用于向后兼容),并将开发哈希添加到发布 api 密钥(以便于开发)。

于 2013-09-23T13:34:59.947 回答