在我的应用程序中,我使用地图来显示当前位置。然后,我使用 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 中有我的应用程序!:)