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

GoogleCertificatesRslt:not allowed错误及consent verifier库求助

Android集成Google街景时GoogleCertificatesRslt:not allowed错误解决

问题概述

开发Android项目集成Google街景功能时,遇到GoogleCertificatesRslt:not allowed错误,涉及com.google.android.libraries.consentverifier库,无公开文档可查。以下是报错日志、复现代码及解决方案。

报错日志

Unable to open '/data/user_de/0/com.google.android.gms/app_chimera/m/00000012/MapsDynamite.dm': No such file or directory
Unable to update local snapshot for com.google.android.libraries.consentverifier#com.example.maybefinalgeoguessr, may result in stale flags.
java.util.concurrent.ExecutionException: java.lang.SecurityException: GoogleCertificatesRslt: not allowed: pkg=com.example.maybefinalgeoguessr, sha256=[....], atk=false, ver=230714044.true (go/gsrlt)
    at ajk.s(:com.google.android.gms.dynamite_mapsdynamite@230714044@23.07.14 (190400-0):3)
    at ajk.get(:com.google.android.gms.dynamite_mapsdynamite@230714044@23.07.14 (190400-0):2)
    at aku.g(:com.google.android.gms.dynamite_mapsdynamite@230714044@23.07.14 (190400-0):2)
    at yn.c(:com.google.android.gms.dynamite_mapsdynamite@230714044@23.07.14 (190400-0):1)
    at yp.run(:com.google.android.gms.dynamite_mapsdynamite@230714044@23.07.14 (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.example.maybefinalgeoguessr, sha256=[.....], atk=false, ver=230714044.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 fd.c(:com.google.android.gms.dynamite_mapsdynamite@230714044@23.07.14 (190400-0):2)
    at rs.a(:com.google.android.gms.dynamite_mapsdynamite@230714044@23.07.14 (190400-0):4)
    at jj.e(:com.google.android.gms.dynamite_mapsdynamite@230714044@23.07.14 (190400-0):2)
    at ki.t(:com.google.android.gms.dynamite_mapsdynamite@230714044@23.07.14 (190400-0):2)
    at ki.u(:com.google.android.gms.dynamite_mapsdynamite@230714044@23.07.14 (190400-0):3)
    at ki.e(:com.google.android.gms.dynamite_mapsdynamite@230714044@23.07.14 (190400-0):2)
    at km.handleMessage(:com.google.android.gms.dynamite_mapsdynamite@230714044@23.07.14 (190400-0):69)
    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)

最小可复现代码

MainActivity

package com.example.maybefinalgeoguessr;

import android.os.Bundle;

import com.google.android.gms.maps.OnStreetViewPanoramaReadyCallback;
import com.google.android.gms.maps.StreetViewPanorama;
import com.google.android.gms.maps.SupportStreetViewPanoramaFragment;
import com.google.android.gms.maps.model.LatLng;

import androidx.appcompat.app.AppCompatActivity;

import java.util.Random;

public class MainActivity extends AppCompatActivity implements OnStreetViewPanoramaReadyCallback {

    private StreetViewPanorama streetViewPanorama;
    private boolean secondlocation = false;
    private static final double MIN_LATITUDE = -90;
    private static final double MAX_LATITUDE = 90;
    private static final double MIN_LONGITUDE = -180;
    private static final double MAX_LONGITUDE = 180;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        SupportStreetViewPanoramaFragment streetViewPanoramaFragment = (SupportStreetViewPanoramaFragment)getSupportFragmentManager().findFragmentById(R.id.googlemapstreetview);
        streetViewPanoramaFragment.getStreetViewPanoramaAsync(this);
    }

    @Override
    public void onStreetViewPanoramaReady(StreetViewPanorama streetViewPanorama) {
        Random random = new Random();
        double lat = MIN_LATITUDE + (MAX_LATITUDE - MIN_LATITUDE) * random.nextDouble();
        double lng = MIN_LONGITUDE + (MAX_LONGITUDE - MIN_LONGITUDE) * random.nextDouble();
        //LatLng randomLocation = new LatLng(lat,lng);
        LatLng debug = new LatLng(40.3356, 75.9269);

        this.streetViewPanorama = streetViewPanorama;
        this.streetViewPanorama.setPosition(debug);
    }
}

Manifest XML

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/Theme.Maybefinalgeoguessr"
        tools:targetApi="33">

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="@string/google_maps_api_key" />
        <meta-data
            android:name= "com.google.android.streetview.API_KEY"
            android:value="@string/geocoding_api_key" />

        <uses-library android:name="org.apache.http.legacy" android:required="false" />

        <activity android:name=".MainActivity"
            android:exported="true"
            android:label="@string/app_name"
            android:theme="@style/Theme.Maybefinalgeoguessr">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

Layout XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <fragment
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        android:id="@+id/googlemapstreetview"
        android:name="com.google.android.gms.maps.SupportStreetViewPanoramaFragment" />
</RelativeLayout>

Dependencies

dependencies {
    implementation 'com.google.android.gms:play-services-base:18.2.0'
    implementation 'com.google.android.gms:play-services-location:21.0.1'
    implementation 'com.google.maps:google-maps-services:2.1.2'
    implementation 'com.google.android.gms:play-services-maps:18.1.0'
    implementation 'com.google.android.gms:play-services-panorama:17.0.0'
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'com.google.android.material:material:1.8.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    implementation 'androidx.navigation:navigation-fragment:2.5.3'
    implementation 'androidx.navigation:navigation-ui:2.5.3'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}

Plugins

plugins {
    id 'com.android.application' version '7.4.1' apply false
    id 'com.android.library' version '7.4.1' apply false
}

解决方案

这个错误本质是Google服务验证不通过,核心是API密钥配置、应用签名信息不匹配,或Google Cloud控制台服务权限未开启。以下是逐一排查修复步骤:

  • 统一API密钥:街景服务属于Maps SDK的一部分,无需单独配置com.google.android.streetview.API_KEY,删除该行,统一使用Maps的API密钥。
  • 验证SHA-256指纹绑定:将报错日志中显示的应用SHA-256指纹,添加到Google Cloud控制台对应API密钥的限制列表中,debug和release签名指纹都要配置。
  • 开启必要服务:登录Google Cloud控制台,确保Maps SDK for Android已启用。
  • 检查包名限制:确认API密钥的应用限制中已添加你的应用包名com.example.maybefinalgeoguessr,包名与SHA-256需一一对应。
  • 更新Google Play服务依赖:将play-services-maps等相关依赖更新到最新稳定版,避免版本兼容问题。
  • 清理缓存重装:清除设备Google Play服务缓存数据,卸载当前应用后清理Android Studio构建缓存,重新构建安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:52:00