0

我正在测试 com.example.mapdemo,我已将我的 Android Google Map Key API 放在清单文件中,然后我在我的 API 项目(Google API 控制台)中注册了使用 Eclipse 中的 keytool 生成的 SHA1 密钥,似乎一切都会有运行良好,但在运行时 logcat 说应用程序无法连接到 Google 服务,因此,地图不会加载,只有 + 和 - 缩放按钮。考虑到这一点,我有两个问题:

  1. 生成证书时,我必须输入与我的谷歌帐户相同的作者姓名吗?
  2. 如果我正在调试项目(不是发布),它是使用默认调试密钥库和 SHA1 构建的,对吗?所以,谷歌无法识别它,应用程序永远不会连接到谷歌服务。

我是对的还是这个问题与我的想法无关?有人可以给我任何想法来解决这个问题吗?谢谢。:(

4

1 回答 1

0

请参阅此页面上的“显示证书信息”部分: https ://developers.google.com/maps/documentation/android/start#obtaining_an_api_key

具体来说,请参阅“显示调试证书指纹”部分。

当您使用 Eclipse 启动 Android 应用程序时(即,只需单击绿色的“播放按钮”),它会使用默认的调试密钥库进行签名。因此,您也可以通过 Google API 控制台将调试密钥库的 SHA-1 指纹列入白名单,这样您就可以查看地图,而无需导出应用程序并使用您的发布密钥进行签名。您可以在 Google API 控制台中添加多个 SHA-1 指纹,后跟应用程序包名称,只需将每个指纹放在自己的行中即可。

以下是上述文档中有关如何查找调试密钥指纹的简短摘录:

  • 找到您的调试密钥库文件。文件名为 debug.keystore,在您第一次构建项目时创建。默认情况下,它与您的 Android 虚拟设备 (AVD) 文件存储在同一目录中:

    • OS X 和 Linux:~/.android/

    • Windows Vista 和 Windows 7:C:\Users\your_user_name.android\

如果您使用带有 ADT 的 Eclipse,并且您不确定调试密钥库的位置,您可以选择 Windows > Prefs > Android > Build 来检查完整路径,然后您可以将其粘贴到文件资源管理器中以找到目录包含密钥库。

  • 列出 SHA-1 指纹。
    • 对于 Linux 或 OS X,打开终端窗口并输入以下内容: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    • 对于 Windows Vista 和 Windows 7,运行: keytool -list -v -keystore "C:\Users\your_user_name\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

您应该会看到与此类似的输出:

`Alias name: androiddebugkey`

... SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75

以 SHA1 开头的行包含证书的 SHA-1 指纹。指纹是由冒号分隔的 20 个两位十六进制数字的序列。

然后就像您对发布证书 SHA-1 一样将其列入白名单。

于 2013-06-17T20:08:03.107 回答