Android发布版Bundle中Google Maps无法加载的问题求助
解决Google Play发布后地图显示灰色(SHA-1不匹配)问题
核心原因
当你将签名后的AAB上传至Google Play时,若开启了Google Play应用签名(默认启用),Google会使用自身的应用签名密钥重新签名你的应用。最终用户下载的应用,其SHA-1指纹是Google生成的应用签名密钥指纹,而非你本地my_app.jks的指纹,这直接导致GCP API密钥的验证失败,地图显示灰色。
解决步骤
获取Google Play应用签名的SHA-1指纹
- 登录Google Play控制台,进入目标应用
- 左侧导航栏选择「发布」→「设置」→「应用签名」
- 在「应用签名密钥」区域,复制对应的SHA-1指纹(注意区分「上传密钥」和「应用签名密钥」,用户安装包使用的是后者)
更新GCP API密钥限制
登录GCP控制台,找到你的Maps API密钥,将上述复制的Google Play应用签名SHA-1添加到「Android应用限制」中,与本地debug指纹、本地release(上传密钥)指纹共同绑定包名com.my_app。排查本地release变体地图灰色问题
- 执行命令
./gradlew :app:signingReport,查看所有构建变体的签名信息,确认release变体的SHA-1与你用keytool生成的my_app.jks指纹一致 - 若本地release的SHA-1正确但地图仍灰色,检查GCP API密钥是否已绑定该本地release指纹和对应包名
- 执行命令
关键注意事项
- 不要混淆「上传密钥」和「应用签名密钥」:上传密钥是你用于签名AAB并上传至Google Play的密钥,应用签名密钥是Google用于签名最终用户安装包的密钥,两者SHA-1完全不同
- 不建议关闭Google Play应用签名,该功能提供密钥丢失恢复、更高安全性等优势
内容的提问来源于stack exchange,提问作者GreatNews
相关产品推荐
相关产品推荐

