Android签名APK无法显示Google Map问题求助
解决签名APK中Google Map空白的问题
我来帮你排查这个困扰——未签名APK地图正常,签名后就空白,大概率是签名密钥的SHA1配置或者构建环节出了问题,你可以从这几个方向逐一验证:
1. 确认你配置的是Release版本的SHA1
你通过Gradle的SigningReport获取SHA1时,要注意输出里会同时显示debug和release两种构建变体的签名信息。未签名APK用的是debug密钥,所以能正常加载地图;但签名APK用的是release密钥,如果你误把debug的SHA1配置到GCP,那release包自然会被API限制。
- 重新运行SigningReport,找到
Variant: release对应的SHA1值,把它添加到GCP的API密钥限制中(如果之前加的是debug的,记得替换或补充)。
2. 手动验证签名Keystore的SHA1是否正确
有时候Gradle的SigningReport显示的release SHA1可能和实际签名用的keystore不匹配(比如build.gradle里的签名配置写错了),这时候可以用keytool命令手动获取:
keytool -list -v -keystore /path/to/your/signing-key.jks -alias your-key-alias
输入密钥库密码后,复制输出的SHA1值,和你在GCP配置的对比,确保完全一致(注意不要有空格、大小写错误)。
3. 检查GCP是否启用了Maps SDK for Android
即使API密钥配置正确,如果没启用对应的服务,地图也会空白。打开GCP控制台,进入API和服务→库,搜索「Maps SDK for Android」,确认它处于启用状态。
4. 验证AndroidManifest的配置是否覆盖Release构建
- 确保
com.google.android.geo.API_KEY的meta-data标签在主Manifest中(不是仅在debug目录的Manifest里),这样Release包才能读取到密钥。 - 检查必要权限是否存在:
这些是地图加载的基础权限,Release包中不能缺失。<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
5. 尝试重新生成GCP API密钥
有时候GCP的配置会有缓存延迟,或者密钥本身存在异常。你可以删除当前的API密钥,重新生成一个新的,再重新配置包名和正确的Release SHA1,然后重新打包测试。
内容的提问来源于stack exchange,提问作者Parth Bhayani
相关产品推荐
相关产品推荐

