You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio Java项目地图模块证书类异常修复求助

Google地图功能异常修复方案

遇到的异常

  1. 无法打开/data/user_de/0/com.google.android.gms/app_chimera/m/00000222/GoogleCertificates.dm:No such file or directory
  2. 找不到com.google.android.gms.googlecertificates的本地模块描述类
  3. 无法更新com.google.android.libraries.consentverifier#com.steadyoil的本地快照,可能导致标记失效,报错堆栈如下:
java.util.concurrent.ExecutionException: java.lang.SecurityException: GoogleCertificatesRslt: not allowed: pkg=com.steadyoil, sha256=[98a6a68b3f9130328da89ac260298ca698eed37c4f821fab07f77c4221db96ec], atk=false, ver=231819044.true (go/gsrlt)
at ajs.s(:com.google.android.gms.dynamite_mapsdynamite@231819044@23.18.19 (190400-0):3)
at ajs.get(:com.google.android.gms.dynamite_mapsdynamite@231819044@23.18.19 (190400-0):2)
at alc.g(:com.google.android.gms.dynamite_mapsdynamite@231819044@23.18.19 (190400-0):2)
at yz.c(:com.google.android.gms.dynamite_mapsdynamite@231819044@23.18.19 (190400-0):1)
at zb.run(:com.google.android.gms.dynamite_mapsdynamite@231819044@23.18.19 (190400-0):0)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:463)
at java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
at java.lang.Thread.run(Thread.java:1012)
Caused by: java.lang.SecurityException: GoogleCertificatesRslt: not allowed: pkg=com.steadyoil, sha256=[98a6a68b3f9130328da89ac260298ca698eed37c4f821fab07f77c4221db96ec], atk=false, ver=231819044.true (go/gsrlt)
at android.os.Parcel.createExceptionOrNull(Parcel.java:3011)
at android.os.Parcel.createException(Parcel.java:2995)
at android.os.Parcel.readException(Parcel.java:2978)
at android.os.Parcel.readException(Parcel.java:2920)
at fe.c(:com.google.android.gms.dynamite_mapsdynamite@231819044@23.18.19 (190400-0):2)
at rx.a(:com.google.android.gms.dynamite_mapsdynamite@231819044@23.18.19 (190400-0):4)
at jl.e(:com.google.android.gms.dynamite_mapsdynamite@231819044@23.18.19 (190400-0):2)
at kj.t(:com.google.android.gms.dynamite_mapsdynamite@231819044@23.18.19 (190400-0):2)
at kj.u(:com.google.android.gms.dynamite_mapsdynamite@231819044@23.18.19 (190400-0):3)
at kj.e(:com.google.android.gms.dynamite_mapsdynamite@231819044@23.18.19 (190400-0):2)
at kn.handleMessage(:com.google.android.gms.dynamite_mapsdynamite@231819044@23.18.19 (190400-0):78)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.os.HandlerThread.run(HandlerThread.java:67)

修复步骤

1. 核对API密钥的应用限制

  • 登录Google Cloud控制台,找到你的Maps API密钥,确认已将包名com.steadyoil和报错中的SHA-256指纹98a6a68b3f9130328da89ac260298ca698eed37c4f821fab07f77c4221db96ec添加到应用限制列表中。
  • 确保该API密钥已启用Maps SDK for Android服务。

2. 验证签名配置一致性

  • 检查项目的签名配置:如果是debug版本,确认使用的Android Studio默认debug证书的SHA-256与控制台一致;如果是release版本,确认签名文件的SHA-256完全匹配。
  • 可通过以下命令获取签名文件的SHA-256:
    keytool -list -v -keystore 你的签名文件路径.jks -alias 签名别名
    

3. 清理重建项目

  • 在Android Studio中执行Build > Clean Project,然后Build > Rebuild Project,清除旧构建缓存。
  • 卸载设备上的旧应用,重新安装最新构建版本。

4. 更新Google Play服务依赖

  • 在模块级build.gradle文件中,确保play-services-maps依赖使用最新稳定版本,例如:
    implementation 'com.google.android.gms:play-services-maps:18.2.0'
    

5. 更新设备端Google Play服务

  • 打开测试设备的Google Play商店,搜索并更新Google Play服务到最新版本,旧版本可能存在证书验证兼容性问题。

6. 检查Manifest配置

  • 确保AndroidManifest.xml中已正确声明Maps API密钥和必要权限:
    <!-- API密钥配置 -->
    <meta-data
        android:name="com.google.android.gms.maps.API_KEY"
        android:value="你的有效API密钥"/>
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version"/>
    
    <!-- 必要权限 -->
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    

内容的提问来源于stack exchange,提问作者Akshay A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 11:52:34