Google Maps应用空白地图及consentverifier更新失败错误求助
Google Maps 空白显示+SecurityException 问题排查
错误日志
Unable to update local snapshot for com.google.android.libraries.consentverifier#com.example.my_app, may result in stale flags. java.util.concurrent.ExecutionException: java.lang.SecurityException: GoogleCertificatesRslt: not allowed: pkg=com.example.my_app, sha256=[098355cb7da096c1c7d98fa16db67e136db0a35aa540229aec9f8801f6355789], atk=false, ver=223017031.true (go/gsrlt) at ahy.s(:com.google.android.gms.dynamite_mapsdynamite@223017068@22.30.17 (100700-0):3) at ahy.get(:com.google.android.gms.dynamite_mapsdynamite@223017068@22.30.17 (100700-0):2) at aji.g(:com.google.android.gms.dynamite_mapsdynamite@223017068@22.30.17 (100700-0):2) at xy.d(:com.google.android.gms.dynamite_mapsdynamite@223017068@22.30.17 (100700-0):1) at ya.run(:com.google.android.gms.dynamite_mapsdynamite@223017068@22.30.17 (100700-0):0) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
问题原因及排查步骤
从错误日志的SecurityException可以明确,核心问题是Google服务验证应用签名和包名不通过,导致地图服务被拒绝。以下是具体排查点:
核对调试签名SHA256指纹
错误日志已给出当前应用使用的SHA256指纹:098355cb7da096c1c7d98fa16db67e136db0a35aa540229aec9f8801f6355789,需确认该指纹与Google Cloud控制台配置是否一致:- 执行命令获取当前调试证书的SHA256:
# Mac/Linux keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android # Windows keytool -list -v -keystore C:\Users\<你的用户名>\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android - 对比命令输出的SHA256值与日志中的值,若不一致,说明调试证书被重置(如重新创建模拟器、清理.android目录),需更新Google Cloud控制台中API Key的应用限制配置。
- 执行命令获取当前调试证书的SHA256:
检查Google Cloud API Key的应用限制
登录Google Cloud控制台,找到对应API Key的配置页面,查看「应用限制」中的Android应用列表:- 确认包名
com.example.my_app正确 - 确认绑定的SHA256指纹与当前调试证书一致,若不一致则更新。
- 确认包名
排查模拟器Google Play服务兼容性
部分情况下,模拟器的Google Play服务版本更新后会出现兼容问题:- 打开模拟器的Google Play应用,检查是否有可用更新,安装后重启模拟器
- 尝试切换到其他API级别的模拟器镜像(如从Android 13换到Android 12)测试。
清除应用缓存数据
在模拟器中进入「设置」→「应用」→ 找到你的应用 →「存储」→ 点击「清除缓存」和「清除数据」,然后重新启动应用。
内容的提问来源于stack exchange,提问作者AlexK
相关产品推荐
相关产品推荐

