我应用谷歌开发者文档中提到的确切步骤创建一个示例谷歌地图项目,一切都在模拟器上很好,但当我生成项目apk文件并在真实设备上启动它三星Galaxy S4谷歌地图不显示它显示只有一个空白的背景,左下方的屏幕角出现了彩色的Google徽标!!
我为谷歌地图创建了新项目我为项目创建了新的.jks文件并创建了商店和密钥传递和别名然后我从cmd java bin中提取了SHA1我去了dev.google.com/console创建了新项目然后启用了谷歌地图android API随后在Credentials中创建了API密钥,在我的项目中google_maps_api.xml中粘贴了这个API密钥,并使用.jks文件路径和别名以及两个密码更新了signingConfigs版本。然后从Android Studio生成签名APK然后将app-release.apk转移到真实设备然后安装它同样问题谷歌地图没有显示。
这个问题的原因
这是因为在SHA1
和debug
类型中有不同的release
s。
修复此问题
将用于构建SHA1
release
的密钥库的APK
添加到Google控制台
脚步:
保存密钥库路径
记得制作Build Type --- release
SHA1
。打开下面的终端使用命令:
keytool -list -v -keystore "/Users/NT/Desktop/generalkey.jks"
系统会要求您输入密钥库的密码。
更改密钥库路径keytool -list -v -keystore "keystore path"
的路径
从证书指纹,你会看到SHA1
SHA1
和您的包名称生成android密钥使用密钥库生成APK并享受您的地图
它可能很愚蠢,但我的API密钥包括在内
app\src\debug\res\values\google_maps_api.xml (debug)
你还需要包括 -
app\src\release\res\values\google_maps_api.xml (release)
现在谷歌签署apk之前发布在商店,所以去谷歌pushish应用程序--->应用程序签名,并添加签名密钥到谷歌开发者控制台,你shoud添加3键sha1:调试,发布和新的sha1键后pushlish
如果还有人还面临这个问题:
这发生在我身上,因为我们需要两个谷歌地图api键一个用于调试,另一个用于发布,你可以登记:
C:\ Users \ username \ AndroidStudioProjects \ yourapp \ app \ src \ debug \ res \ values,您将找到一个带有api密钥的xml,如:
<string name="google_maps_key" templateMergeStrategy="preserve"
translatable="false">AIza...etc</string>
但如果你在这里查看:
C:\ Users \ username \ AndroidStudioProjects \ yourapp \ app \ src \ release \ res \ values你会发现一个xml但没有api键,如:
<string name="google_maps_key" templateMergeStrategy="preserve"
translatable="false">YOUR_KEY_HERE</string>
它被记录为xml文件本身内的注释:
在您发布应用程序之前,您需要一个Google Maps API密钥。
To do this, you can either add your release key credentials to your existing
key, or create a new key.
Note that this file specifies the API key for the release build target.
If you have previously set up a key for the debug target with the debug signing certificate,
you will also need to set up a key for your release certificate.
Follow the directions here:
https://developers.google.com/maps/documentation/android/signup
Once you have your key (it starts with "AIza"), replace the "google_maps_key"
string in this file.