Google Maps V2无法使用正确的密钥进行制作

我在使用Android应用程序生产Google地图时遇到了麻烦。 这是我目前正在(底部只是广告)。

App生产屏幕

我遵循的关键步骤是:

1)我确保已经获得了正确的SHA1生产密钥,并且已经在Google Console API以及应用程序中实现了它(Google提供的这些密钥)。 我已经注册了两个密钥 – 一个用于debugging,一个用于生产

2)互联网,位置等正在工作

3)该应用程序在DEBUG模式下工作,但通过USB签名并安装在设备上不起作用。 我已经三重检查了标志的SHA 1签名等

4)MapsFragment来自Android Studio中提供的模板。

在生产模式下,日志猫显示这个:

01-11 16:04:54.511 19346-19437/com.mike.mapstest E/Google Maps Android API﹕ Authorization failure. Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map. 01-11 16:04:54.516 19346-19437/com.mike.mapstest E/Google Maps Android API﹕ In the Google Developer Console (https://console.developers.google.com) Ensure that the "Google Maps Android API v2" is enabled. Ensure that the following Android Key exists: API Key: YOUR_KEY_HERE Android Application (<cert_fingerprint>;<package_name>): <SHA1 Removed for this> ;com.mike.mapstest 

这个错误显然说我的authentication有问题吗? 我究竟做错了什么?

Solutions Collecting From Web of "Google Maps V2无法使用正确的密钥进行制作"

基于可debugging版本构build的logcat输出:

 01-11 16:04:54.511 19346-19437/com.mike.mapstest E/Google Maps Android API﹕ Authorization failure. Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map. 01-11 16:04:54.516 19346-19437/com.mike.mapstest E/Google Maps Android API﹕ In the Google Developer Console (https://console.developers.google.com) Ensure that the "Google Maps Android API v2" is enabled. Ensure that the following Android Key exists: API Key: YOUR_KEY_HERE Android Application (<cert_fingerprint>;<package_name>): <SHA1 Removed for this> ;com.mike.mapstest 

看来你没有覆盖清单中的api键占位符YOUR_KEY_HERE (或单独的api键文件,取决于你的configuration)。 把这个string,无论它在哪里,用你的真实钥匙replace,你应该很好走。

编辑: 本教程 ,如果它匹配你的configuration,可能解释了为什么你只看到这个发布版本:

返回到Android Studio并将API密钥粘贴到文件的YOUR_KEY_HERE部分:

请注意,这些步骤已启用Google地图支持应用程序包的debugging版本。 当准备好构build应用程序的发布版本时,还需要将API密钥添加到位于MapDemo – > app – > src – > release – > res – >中的google_maps_api.xml文件中。

我也遇到了同样的问题,几天之后就把我的头靠在墙上。 我读了关于把正确的钥匙到位的所有post。 我一直在我的google_maps_api.xml文件中正确的键。 上面提到的StKent确保用AndroidManifest.xml中的实际string覆盖。 这是对我来说固定的。

什么时候我没有工作:在AndroidManifest.xml中:

 <meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/google_maps_key" /> 

并在google_maps_api.xml中:

  <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">AIza_the actual key</string> 

我改变了它的工作我改变了我的AndroidManifest.xml包括:

 <meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzsa_the actual key" /> 

当使用Android Studio生成Google Maps Activity时,它将忽略您的gradle buildconfiguration并使用默认的debug.keystoregoogle_maps_api.xml的SHA1基于此默认值。 在Google API控制台中创build权限时,如果使用的是非默认值,请确保使用生产和debuggingSHA1。

debugging和生产的关键会有所不同。 如果您使用释放模式的debugging密钥,则无法查看谷歌地图。 对于发布模式,当你更改谷歌地图的关键,你应该清理项目,然后导出apk。

您可以获取更多信息https://developers.google.com/maps/documentation/android/start

从debugging密钥库中获取私有SHA1

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

去看更多

密钥库证书的SHA-1指纹

或者您可以使用导出菜单来日蚀工具来生成私有SHA1密钥

就我而言,我在Google API的APIpipe理器中input了错误的软件包名称 – 凭据 – “限制使用您的Android应用程序”。 确保input了正确的包名(如AndroidManifest.xml中所示)和正确的SHA指纹(用于debugging和生产)。 Google API管理器屏幕截图

解决了,我从Google API控制台上提供了“浏览器应用程序(带引用程序)的密钥”,而不是“Android应用程序密钥(带证书)”