不同PC运行Android Studio时Google Maps API需新密钥的原因咨询
为什么换PC后Google Maps API密钥会失效?
其实核心原因很直接——你的Google Maps API密钥和旧电脑的SHA-1证书指纹绑定了,换了新PC后,本地调试用的签名证书指纹变了,密钥自然就不认你的请求了。
具体给你拆解下:
- 本地调试Android项目时,Android Studio会自动用一个默认的调试签名文件(
debug.keystore)给APP签名,每台电脑的这个默认keystore都是独一份的,对应的SHA-1指纹完全不一样。 - 你之前在Google Cloud控制台创建API密钥时,肯定给它设置了「应用限制」,绑定了旧电脑的SHA-1指纹和你的APP包名。这是Google的安全机制,只有匹配指纹+包名的请求才会被允许调用API。
- 换了新PC后,调试用的SHA-1指纹变了,你的请求不符合密钥的限制条件,地图服务直接拒绝响应,自然就加载失败了。而你新创建的密钥如果没设置严格的应用限制(或者无意中用了新PC的指纹),就能正常工作。
不用每次新建密钥的解决方法
其实不用反复创建新密钥,只要把新PC的SHA-1指纹添加到现有API密钥的应用限制里就行:
- 在新PC上获取调试SHA-1指纹:
- 打开Android Studio,找到右侧「Gradle」面板,进入你的APP模块 → Tasks → android → 双击运行
signingReport。 - 运行完成后,在控制台里找到「SHA1」那一行的字符串,复制下来。
- 打开Android Studio,找到右侧「Gradle」面板,进入你的APP模块 → Tasks → android → 双击运行
- 登录Google Cloud控制台更新现有密钥:
- 进入「API和服务」→「凭据」,找到你原来的Maps API密钥。
- 在「应用限制」区域,点击「添加指纹」,粘贴刚才复制的SHA-1,保存更改。
这样不管换多少台PC,只要把对应电脑的SHA-1指纹添加到同一个密钥里,就能正常用地图功能了。另外提醒下,如果是正式发布的APP,记得把正式签名证书的SHA-1也添加到密钥限制里,不然发布后地图也会失效。
内容的提问来源于stack exchange,提问作者Sivasankar Gnanamani
相关产品推荐
相关产品推荐

