Android Google Maps API v2:不同笔记本电脑的授权失败

时间:2013-02-06 12:55:43

标签: android google-maps android-maps google-maps-android-api-2 android-maps-v2

我已按照herehere步骤在我们的团队项目中创建MapView,我们与svn同步。按照步骤操作后,MapView运行顺畅,但只能在我的笔记本电脑上运行。我的项目成员总是得到

02-06 13:27:37.327: E/Google Maps Android API(19490): Authorization failure.

打开MapView时。所以我删除了旧版本,并使用我的Google帐户在另一台笔记本电脑上为新的Google API密钥生成了新的SHA1指纹:

keytool -list -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android -v

所以现在它正在我生成SHA1指纹的另一台笔记本电脑上工作,但是当我尝试在我的笔记本电脑上运行项目时,我现在正在使用

02-06 13:29:51.280: E/Google Maps Android API(20262): Authorization failure.

错误。

我们没有使用proguard-project.txt,我们尝试了安装了google-play-services的不同设备,并将/extras/google/google_play_services/libproject/google-play-services_lib作为库包含在内。我们还尝试生成多个API密钥,但只有一个正在运行。

我们做错了什么?我们是否必须使用不同的Google帐户来创建个人密钥?

2 个答案:

答案 0 :(得分:3)

引用Google API控制台:

  

API请求会从您客户的Android直接发送给Google   设备。 Google会验证每个请求是否来自Android   与证书SHA1指纹之一匹配的应用程序   包名称如下。你可以发现SHA1的指纹   您的开发人员证书使用以下命令[...]

     

一个SHA1证书指纹和包名称(以分号分隔)   每行。

此处点亮每行一个

Screenshot of Google Maps API Key - Configure Android Key`

对于构建应用程序的每台笔记本电脑,您必须生成SHA1指纹并将其添加到API控制台中。

答案 1 :(得分:2)

这里有两个选择。

  1. 为每个设备的api密钥添加一个单独的行。

  2. 将api密钥解压缩到文件(例如map_key.xml)并从AndroidManifest.xml引用此文件。

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="@string/google_maps_api_key_v2" />
    

    将此文件添加到.gitignore中 - 现在每个项目成员都可以使用自己的密钥覆盖。