Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 谷歌地图API密钥在发布版本中没有';行不通_Android_Google Maps_Certificate_Key_Sha - Fatal编程技术网

Android 谷歌地图API密钥在发布版本中没有';行不通

Android 谷歌地图API密钥在发布版本中没有';行不通,android,google-maps,certificate,key,sha,Android,Google Maps,Certificate,Key,Sha,我目前正在为Android开发一个应用程序,我正在使用谷歌地图API。在开发人员控制台中,我添加了我的SHA1证书打印,后跟我的包名。 即使我使用keytool打印这个SHA1证书,我也无法访问地图。 我做了很多搜索,但每一个主题都让我找到了在开发人员控制台中错误的API键中的答案。 但我选了右边的SHA1,我的证书上的那个 提前谢谢 我也有同样的问题,非常令人沮丧。我最终做的是使用我的发布密钥库制作的密钥,并将其放入google开发者控制台。然后,将以下内容添加到android清单中 <

我目前正在为Android开发一个应用程序,我正在使用谷歌地图API。在开发人员控制台中,我添加了我的SHA1证书打印,后跟我的包名。 即使我使用keytool打印这个SHA1证书,我也无法访问地图。 我做了很多搜索,但每一个主题都让我找到了在开发人员控制台中错误的API键中的答案。 但我选了右边的SHA1,我的证书上的那个


提前谢谢

我也有同样的问题,非常令人沮丧。我最终做的是使用我的发布密钥库制作的密钥,并将其放入google开发者控制台。然后,将以下内容添加到android清单中

<meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="KEY GOES HERE"/>

我相信您已经阅读了相关文档,但请务必严格按照发布证书的说明进行操作


您还可以在google_maps_api.xml文件中跟踪为您生成的链接。这自动化了将密钥输入开发人员控制台的过程。但是,请确保仍将该元数据值添加到清单中。

文件google\u maps\u api.xml必须位于res/debug/和res/release下。编辑器仅显示默认情况下为调试的当前运行配置,如果不遵守文件夹名称后的(调试)注释,则会有点误导。将google_maps_api.xml复制到这两个文件夹中并进行编辑,确保它们具有每个构建的正确api密钥

Android Studio还在发布文件夹中为google_maps_api xml文件创建一个TODO,并让您在发布之前知道所需的过程。另外,请不要手动更改清单中的密钥。当您切换到版本变量时,该密钥将在清单中自动更新

<meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="KEY GOES HERE"/>
无论如何,你要这样做

  • 转到@Andrew Brook提到的链接

  • 单击“获取密钥”并继续

  • 创建新项目或使用现有项目
  • 指定选项并单击按钮
  • 如果您之前已经做过一个,比如说调试,那么就去创建一个新的api密钥
  • 添加所需名称,单击“添加包名和指纹”
  • 添加应用程序的包名和SHA-1密钥(在java/jdk../bin/中使用keytool生成)
  • 您可以将“release”变体API密钥添加到发布文件夹中的google_maps_API.xml中
    我的地图在发布模式下显示,但在我发布到Play Store后,它没有显示

    我提到了调试和发布证书SHA-1密钥到Google开发者控制台,但从play store下载应用程序后,在发布模式下的地图仍然没有显示

    以下是问题所在: 此应用程序已启用Google Play应用程序签名

    转到发布管理->应用程序签名->并从应用程序签名证书复制SHA-1证书指纹


    将这个新复制的SHA-1指纹粘贴到开发者控制台,并在发布模式下显示地图。

    您必须在Google开发者控制台中启用SHA密钥 因此,在第一次进入发布管理获取您的应用程序SHA密钥(第一个) 然后点击这个链接

     https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=(Your SHA KEY)%3B(YOUR PACKAGE NAME)
    
    现在它将启用API。 现在使用新密钥更新应用程序。
    它会起作用。

    您在清单文件中提到android密钥了吗谢谢!我做了改变,我还注意到,当我创建GoogleMaps活动时,有两个地方的API密钥是存储的。一个文件用于发布,另一个用于调试。确保在这两个文件中指定了密钥!我一直在寻找这两个文件,它们都在src/debug/res/values/google_-maps_-api.xml和src/release/res/values/google_-maps_-api.xml中,api键应该如何与debug一起工作?您是否对调试版本进行签名?我从没听说过有人这样做…我已经被困在这三天了!非常感谢,在文档中我没有看到这一步的说明。我使用
    keytool
    从Android Studio内的终端获取SHA-1,但地图仍然无法与此SHA-1配合使用。谢谢你!Android Studio发布的SHA-1版本似乎与Google Play控制台中的版本有所不同。我也被困在这个问题上好几天了。非常感谢。Play控制台中的散列与命令行keytool中的散列明显不同。密钥工具显示上载证书。非常恼人的是
    应用程序签名密钥
    上载密钥
    的描述基本相同