我的谷歌地图API存在问题。在调试模式下,它工作正常。但是在发布模式下我得到了空白地图。我试图将SHA1从调试密钥库更改为发布密钥库。对我的问题有任何想法吗?
答案 0 :(得分:15)
将apikey添加到debug> res>值> google_maps_api.xml 然后添加发布> res>值> google_maps_api.xml。
然后检查它是否有效。
也许您有2个google_maps_api.xml文件,一个在app / src / debug / res / values文件夹中,另一个在app / src / release / res / values文件夹中,但只有调试文件包含您的API密钥
答案 1 :(得分:1)
我遇到了同样的问题。你的钥匙有问题。重新生成密钥并尝试。
答案 2 :(得分:1)
您是否生成了私人API密钥?当我创建私有api密钥并且我使用不同的密钥库来构建时,它发生在我身上。
答案 3 :(得分:0)
这是因为您使用调试密钥库为地图生成Google API密钥。
(假设您使用的是Android Studio) 请执行以下步骤:
使用.jks文件进行发布模式,生成SHA 1指纹。
一个。打开Android Studio
湾打开你的项目
℃。单击Gradle(从右侧面板,您将看到Gradle Bar)
d。单击Refresh(单击Refresh from Gradle Bar,您将看到项目的List Gradle脚本)
即单击您的项目(您的项目名称表单列表) 单击Tasks / Android
F。双击signingReport(您将在运行栏中获得SHA1和MD5)
在google_maps_api.xml中使用此密钥。
答案 4 :(得分:0)
如果有人遇到相同的问题,我将分享我的解决方案... 我正在创建一个应用程序,终于可以发布它了。因此,我尝试在发布模式下运行,并且获得了为构建版本发布设置signingConfigs所需的信息。一旦完成,并配置了我的proguard-rules.pro文件,应用程序就可以运行了,太好了!但没有显示地图。
我发现人们在谈论密钥库和SHA1凭证结束了所有事情,但我还不清楚。因此,我记录到必须设置一个密钥才能使我的地图在构建变体调试中工作,并且所有东西都放在一起。
所以我了解到,调试和发布使用不同的SHA1凭据,并且一个密钥可以具有多个与其相关的凭据。 当我通过此链接https://developers.google.com/maps/documentation/android-sdk/get-api-key设置Google映射的密钥时,我获得了用于调试的SHA1凭据,因此,要使我的地图正常工作,我必须从发布中获取SHA1凭据并将其添加到密钥中。 ..
Google Cloud Platform控制台>“选择项目”>“单击左上角的Hamburger图标”> API和服务>凭据>“单击用于调试模式的凭据”>限制对Android应用的使用>“从发布模式添加新的SHA1凭据”
现在的重点是,如何从发布模式获取SHA1凭据? 如果您已经设置了版本变体版本的signingConfigs,则可能会得到一个keystore.jks文件。有了这个文件,您可以通过进入bash并输入凭据来获取证书。
keytool -list -v -keystore YOUR.PATH.TO.THE.KEYSTORE.FILE -alias YOUR.KEYSTORE.ALIAS
然后他们会问您密钥库密码并完成! 现在,您可以在发布模式下将SHA1凭据复制并粘贴到Google Cloud Platform Console的密钥中。 =)