我有一个使用谷歌地图的应用程序,在调试时一切正常,但是在发布时,地图不显示
我在调试之外创建了文件google_maps.api.xml
,也就是说,我有它main/res/values/google_maps.api.xml
在AndroidManifest.xml
其中我分配它
<Aplication>
...
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
...
</aplication>
我看到里面google_maps.api.xml
有以下内容:
获得密钥后(以“AIza”开头),替换此文件中的“google_maps_key”字符串。
如果它开始了,我从AIza
哪里获得释放密钥?
请记住,当我们获得 API KEY 时,它与我们的 Keystore 的 SHA-1 相关,在开发中使用 debug.keystore,但对于生产,您必须获得用于签署应用程序并注册它的 Keystore 的 SHA-1 .
您甚至可以将开发和生产 SHA-1 配置为在开发测试和使用您的密钥库为 Google PlayStore 签名时正常工作。
需要注意的是,添加新的 SHA-1 会生成一个新的、不同的 API 密钥。
如果它没有给你显示地图,
地图不显示的主要原因是没有正确的API KEY或者没有启用api。:
查看描述您的问题的这个问题,它还显示了如何在 Android 应用程序中配置 Google 地图:
地图 Android Studio
设置正确的 API KEY 并启用 API 后,显示地图应该没有问题:
补充解决方案:
必须允许使用已签名应用的 SHA1 访问已签名应用。
要获得
SHA1
你必须使用命令keytool -list -v -keystore tu_keystore.keystore
并在 google maps api 面板中添加带有 SHA1 的包名称,保存。
它对我添加了一个 SHA-1(除了使用证书生成的那个)。也就是说,我有 2 个具有相同包名称的 SHA-1 证书指纹。
您必须将出现的 SHA-1 放入 Play Store 控制台的应用程序签名中。
我希望它对你有用,它对我有用。干杯
生成 Maps 类型的 Activity 时,会生成两个 google_maps_api.xml 文件,存储在两个不同的文件夹中:一个用于调试,一个用于发布。我添加了使用根据此处接受的答案中提供的说明获得的 SHA-1 生成的新 google_key_map。但是我把它包含在app/debug/res/values目录下的google_maps_api.xml文件中,重要的是把它包含在app/release/res/values目录下。我借此机会感谢 stackoverflow 一直以来对我的帮助。