2

我创建了一个小型 Android 地图项目,一切都很顺利,直到我将工作空间转移到另一台计算机上。谷歌地图不可见,logcat 输出有以下行:

07-24 16:15:24.261: E/Google Maps Android API(21868): Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors)

我的第一个想法是丢失/错误的密钥库,因为我忘记将它从一台计算机复制到另一台计算机,所以我从我的新 debug.keystore (C:\Users\Enrico.android) 中获取了 SHA1 指纹并创建了一个新的 Api 密钥使用此指纹并将其放入 Manifest.xml。没有结果。我的第二个行动是更新 google-play-services_lib 但它没有改变。

这是我的代码和来自 Api 控制台的一些有趣的部分:

SHA1:

C1:07:A9:8B:E0:B1:FF:49:B4:C3:C6:E8:3B:98:93:FF:8F:D6:36:2F

API 控制台:

API key:    
AIzaSyDaDJBQyg7I8_Bd3IrKChEdcNo2E7cxU6g
Android apps:   
C1:07:A9:8B:E0:B1:FF:49:B4:C3:C6:E8:3B:98:93:FF:8F:D6:36:2F;com.name.appname

清单.xml:

android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyDaDJBQyg7I8_Bd3IrKChEdcNo2E7cxU6g"/>
<uses-library android:name="com.google.android.maps" /> 

请帮我!!! 编辑: 另一个提示。当我第一次在新计算机上启动我的应用程序时,我需要从我的测试手机中删除我的“旧”版本,并提示签名已更改。所以实际上它只能是 debug.keystore 文件中错误的 SHA1 指纹......或者?

4

2 回答 2

0

在 API 控制台上更新 SHA-1 后,您可能需要卸载并重新安装该应用程序。

似乎 Google Play 服务将来自服务器的“未经授权”的答案保存在缓存中。

编辑:

您可以尝试在不指定 SHA 和包名称的情况下创建另一个 API 密钥。这将创建一个显示“Android 应用程序:允许任何应用程序”的密钥。我有点担心这种可能性,因为任何人都可以在他们的应用程序中使用该密钥,但对于开发来说这不是问题。

于 2013-07-24T19:55:24.833 回答
0

您可能忘记添加权限“MAPS_RECEIVE”

定义此权限:

    <permission
        android:name="com.jonasdevlieghere.alma.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

并将其添加到必要权限列表中:

<uses-permission android:name="com.jonasdevlieghere.alma.permission.MAPS_RECEIVE" />

随意更改权限名称以匹配您自己的应用程序。

于 2013-07-24T14:43:29.933 回答