Android Maps SDK空白地图异常求助:SecurityException问题排查
问题描述
我司项目使用Android Maps SDK已有5年以上,近期地图突然显示为空白。已更新Google控制台中的支付相关信息,还创建了新的API密钥并重新实现了整个MapFragment,但仍抛出如下异常:
GoogleApiManager de..xx.xxx E Failed to get service from broker. java.lang.SecurityException: Unknown calling package name 'com.google.android.gms'. at android.os.Parcel.createExceptionOrNull(Parcel.java:3023) at android.os.Parcel.createException(Parcel.java:3007) at android.os.Parcel.readException(Parcel.java:2990) at android.os.Parcel.readException(Parcel.java:2932) at m.cpc.q(:com.google.android.gms.policy_maps_core_dynamite@234910201@234910200042.587833741.587833741:180) at m.cno.run(:com.google.android.gms.policy_maps_core_dynamite@234910201@234910200042.587833741.587833741:54) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:226) at android.os.Looper.loop(Looper.java:313) at android.os.HandlerThread.run(HandlerThread.java:67)
已尝试解决该问题三天但未找到方案,且确认Maps SDK for Android已启用。
更新:抛出上述异常后,还出现如下警告:
Unable to update local snapshot for com.google.android.libraries.consentverifier#com.google.android.gms, may result in stale flags. java.util.concurrent.ExecutionException: m.fdz: 17: 17: API: Phenotype.API is not available on this device. Connection failed with: ckg{statusCode=DEVELOPER_ERROR, resolution=null, message=null} at m.gso.s(:com.google.android.gms.policy_maps_core_dynamite@234910201@234910200042.587833741.587833741:21) at m.gso.get(:com.google.android.gms.policy_maps_core_dynamite@234910201@234910200042.587833741.587833741:5) at m.gvm.a(:com.google.android.gms.policy_maps_core_dynamite@234910201@234910200042.587833741.587833741:2) at m.guh.h(:com.google.android.gms.policy_maps_core_dynamite@234910201@234910200042.587833741.587833741:10) at m.ffn.c(:com.google.android.gms.policy_maps_core_dynamite@234910201@234910200042.587833741.587833741:1) at m.ffu.run(:com.google.android.gms.policy_maps_core_dynamite@234910201@234910200042.587833741.587833741:5) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307) Caused by: m.fdz: 17: 17: API: Phenotype.API is not available on this device. Connection failed with: ckg{statusCode=DEVELOPER_ERROR, resolution=null, message=null} ...
解决方案建议
- 核对API密钥的包名与SHA-1签名:即使是旧项目,也可能因签名配置变更(如debug/release签名切换、签名文件更新)导致验证失败。去Google控制台对应API密钥的限制设置里,确保包名和当前应用使用的SHA-1值完全匹配,无拼写或字符遗漏。
- 检查Google Play Services版本:异常涉及
com.google.android.gms,优先用搭载最新Google Play Services的真机测试;同时确保项目中play-services-maps依赖版本与其他Google服务依赖版本一致,避免版本冲突。 - 确认账户计费状态:虽然已更新支付信息,仍需检查Google Cloud账单页面,确认账户无欠费、服务未被限制,排除计费延迟或未生效的情况。
- 排查应用签名配置:若用App Bundle发布,确保上传到Google Play的签名证书SHA-1与控制台配置一致;本地打包则核对本地签名文件的SHA-1是否正确配置到API密钥限制中。
- 清除缓存:在测试设备上清除应用及Google Play Services的缓存,重启应用后重试,排除本地缓存导致的验证异常。
- 检查关联API权限:确认除Maps SDK for Android外,是否有其他关联服务(如Geocoding API)未启用,但核心仍聚焦于API密钥的权限验证环节。
内容的提问来源于stack exchange,提问作者MAck
相关产品推荐
相关产品推荐

