Local module descriptor class for com.google.android.gms.googlecertificates not found - Google Maps Plugin

I have recently tried to intergrate the new Google Maps capacitor plugin:

My app is a Ionic Capacitor application (Angular) and runs on android and iOS

This is my implementation:

.html:

<ion-content [fullscreen]="true">
  <div id="map" #map></div>
</ion-content>

.ts:

import {AfterViewInit, Component} from '@angular/core';
import {GoogleMap} from '@capacitor/google-maps';

@Component({
  selector: 'app-testpage',
  templateUrl: './testpage.page.html',
  styleUrls: ['./testpage.page.scss'],
})
export class TestPage implements AfterViewInit {

  constructor() {
  }

  ngAfterViewInit(): void {
  }

  public async showMap() {
    const apiKey = "myapikey";
    const mapElement = document.getElementById('map');

    const mapConfig = {
      center: {
        lat: 33.6,
        lng: -117.9,
      },
      zoom: 8,
      androidLiteMode: false,
    }

    const mapOptions = {
      id: "my-map",
      apiKey: apiKey,
      config: mapConfig,
      element: mapElement,
    }
    const map = await GoogleMap.create(mapOptions)

  }
}

in my android manifest file:

<meta-data android:name="com.google.android.geo.API_KEY" android:value="myapikey"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

However when I open the page I get the following errors in the console:

W/DynamiteModule: Local module descriptor class for com.google.android.gms.googlecertificates not found.

W/SnapshotHandler: Unable to retrieve flag snapshot for com.google.android.libraries.consentverifier#com.mypackagename, using defaults.


 java.io.FileNotFoundException:/data/user/0/com.gmail.mypackagename/files/phenotype/shared/com.google.android.libraries.consentverifier#com.mypackagename.pb: open failed: ENOENT (No such file or directory)

W/MobStoreFlagStore: Unable to update local snapshot for com.google.android.libraries.consentverifier#com.mypackagename, may result in stale flags.

java.util.concurrent.ExecutionException: java.lang.SecurityException: GoogleCertificatesRslt: not allowed: pkg=com.mypackagename, sha256=[...], atk=false, ver=221514044.true (go/gsrlt)

I am wondering if anyone knows how to solve this?

1 Like

There is no voting here, so let me say, I too have the same problem

I also have the same problem. I couldn’t figure it out anyway.

W/DynamiteModule: Local module descriptor class for com.google.android.gms.googlecertificates not found.
I/DynamiteModule: Considering local module com.google.android.gms.googlecertificates:0 and remote module com.google.android.gms.googlecertificates:7
I/DynamiteModule: Selected remote version of com.google.android.gms.googlecertificates, version >= 7
W/SnapshotHandler: Unable to retrieve flag snapshot for com.google.android.libraries.consentverifier#com.xxx.xxx, using defaults.
java.io.FileNotFoundException: /data/user/0/com…xxx.xxx/files/phenotype/shared/com.google.android.libraries.consentverifier#com…xxx.xxx.pb: open failed: ENOENT (No such file or directory)
at libcore.io.IoBridge.open(IoBridge.java:575)

@m_abdelfattah , @onyxmustafa I gave up trying. Instead I resulted in using leaflet maps with a google maps overlay as I don’t need any features just the overlay.

This is easier to maintain in my opinion and more flexible (If you don’t need any google maps functionality) More importantly its free and don’t have to pay for api usage. I attached a picture of my results