2

Edit :

We decided to use OpenStreetMap instead of Google Maps. Actually, we were thinking of returning to OpenStreetMap in the future, but we did not want to spoil what was written. We made this decision because the fix would be too costly. Thanks for yours helps.




IOS and Android ScreenShots

The project in use will be added to the project to add extra features. After adding maps that work smoothly on IOS, when it comes to Android, I get the error "Unexpected response code 503 for https://clients4.google.com/glm/mmap/api" in the Debug Console section. The full error is below...


enter image description here

what did i check

  • api key connection
  • Android Emulator (Creating a different project containing Google Maps. It worked with the android emulator without any problem, but the screen does not appear in the project where I got the error.)
  • dependencies update
  • Emulator has google play services

Full Error Code

Unexpected response code 503 for https://clients4.google.com/glm/mmap/api 
   
W/MobStoreFlagStore(26335): java.util.concurrent.ExecutionException: java.lang.SecurityException: GoogleCertificatesRslt: not allowed: pkg=com.dotdotdot.dotdot_dotdot, sha256=[de6158b2bcbe47a9e13cccf90dc960571efc28ca09f89e29840e87729f126466], atk=false, ver=221514037.true (go/gsrlt)
    W/MobStoreFlagStore(26335):     at agw.s(:com.google.android.gms.dynamite_mapsdynamite@221514081@22.15.14 (150400-0):3)
    W/MobStoreFlagStore(26335):     at agw.get(:com.google.android.gms.dynamite_mapsdynamite@221514081@22.15.14 (150400-0):2)
    W/MobStoreFlagStore(26335):     at aig.g(:com.google.android.gms.dynamite_mapsdynamite@221514081@22.15.14 (150400-0):2)
    W/MobStoreFlagStore(26335):     at wy.c(:com.google.android.gms.dynamite_mapsdynamite@221514081@22.15.14 (150400-0):1)
    W/MobStoreFlagStore(26335):     at xa.run(:com.google.android.gms.dynamite_mapsdynamite@221514081@22.15.14 (150400-0):0)
    W/MobStoreFlagStore(26335):     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
    W/MobStoreFlagStore(26335):     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    W/MobStoreFlagStore(26335):     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
    W/MobStoreFlagStore(26335):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    W/MobStoreFlagStore(26335):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    W/MobStoreFlagStore(26335):     at java.lang.Thread.run(Thread.java:923)
    W/MobStoreFlagStore(26335): Caused by: java.lang.SecurityException: GoogleCertificatesRslt: not allowed: pkg=com.bilicisoft.visit_ankara, sha256=[de6158b2bcbe47a9e13cccf90dc960571efc28ca09f89e29840e87729f126466], atk=false, ver=221514037.true (go/gsrlt)
    W/MobStoreFlagStore(26335):     at android.os.Parcel.createExceptionOrNull(Parcel.java:2373)
    W/MobStoreFlagStore(26335):     at android.os.Parcel.createException(Parcel.java:2357)
    W/MobStoreFlagStore(26335):     at android.os.Parcel.readException(Parcel.java:2340)
    W/MobStoreFlagStore(26335):     at android.os.Parcel.readException(Parcel.java:2282)

Error Code ScreenShots

Error Code 1 Error Code 2


Dependencies

environment:
  sdk: ">=2.16.2 <3.0.0"

dependencies:
  mobx: ^2.0.1
  flutter_mobx: ^2.0.0
  mobx_codegen: ^2.0.1+3
  build_runner: ^2.0.6
  easy_localization: ^3.0.0
  shared_preferences: ^2.0.0
  dio: ^4.0.0
  google_maps_flutter: 2.1.5

Google Maps Code

(I remind you again. This code doesn't work for me on Android, but it does on iOS. I don't think there is a problem with the code.)

 Container(
                        height: 300,
                        child: googleMap.GoogleMap(
                          mapType: googleMap.MapType.normal,
                          initialCameraPosition: googleMap.CameraPosition(
                            target: googleMap.LatLng(_place?.lat ?? 0, _place?.lng ?? 0),
                            zoom: 15,
                          ),
                          onMapCreated: (googleMap.GoogleMapController controller) {
                            _controller.complete(controller);
                          },
                          markers: Set<googleMap.Marker>.of([
                            googleMap.Marker(
                                markerId: googleMap.MarkerId(_place?.title ?? ""),
                                position: googleMap.LatLng(_place?.lat ?? 0, _place?.lng ?? 0))
                          ]),
                        ),
                      ),

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.dotdot.dot_dot>
    
  <queries>
    <intent>
      <action android:name="android.intent.action.VIEW" />
      <data android:scheme="https" />
    </intent>
    <intent>
      <action android:name="android.intent.action.DIAL" />
      <data android:scheme="tel" />
    </intent>
    <intent>
      <action android:name="android.intent.action.SENDTO" />
      <data android:scheme="smsto" />
    </intent>
  </queries>

   <application
        android:label="APP Name"
        android:icon="@mipmap/ic_launcher"
        android:usesCleartextTraffic="true">

        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
           
            <meta-data
              android:name="io.flutter.embedding.android.NormalTheme"
              android:resource="@style/NormalTheme"
              />
           
              android:name="io.flutter.embedding.android.SplashScreenDrawable"
              android:resource="@drawable/launch_background"
              />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
         
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
        <meta-data android:name="com.google.android.geo.API_KEY"
            android:value="AIzaSyC_K9N2..........ASD_s4"/>
    </application>
</manifest>
benimbolat
  • 143
  • 2
  • 8
  • Did you check whether the maps API is enabled in the console? – Gejaa May 18 '22 at 15:36
  • Same here as well. For me the map only appears once you move the camera (drag with your finger). Lite mode seems to solve this issue but lite me is not what I want. I hope this get resolved soon. – M. A. May 18 '22 at 22:25
  • @Gejaa Yes it works in different android project with same api key. But in this project, unfortunately. I integrated a different api key into this project, it still didn't work on Android. It works flawlessly on iOS. – benimbolat May 19 '22 at 06:48
  • @M.A. thank you. I tried all the solutions I could think of. – benimbolat May 19 '22 at 06:49
  • Does your emulator is having google play services? – Gejaa May 19 '22 at 07:15
  • @Gejaa Yes there is – benimbolat May 19 '22 at 07:26
  • Did you tried this too? API Restrictions from Don't restrict key to Restrict key for Android and iOS separately. – Gejaa May 19 '22 at 07:34
  • @Gejaa yes i tried. I tried with the old API and it didn't work. I bought the api key again with a different google account from zero, it still didn't work. – benimbolat May 19 '22 at 07:37
  • This could be the reason: https://github.com/flutter/flutter/issues/103686 – M. A. May 19 '22 at 07:40
  • if still didn't resolve can you share a minimal reproducible code sample? – Gejaa May 19 '22 at 07:48
  • @M.A. sorry, it didn't. – benimbolat May 19 '22 at 07:49
  • @Gejaa Yes, of course. but it works when I run the same snippet in a different project. It will work for you too. The problem is that it doesn't work in the main project :( – benimbolat May 19 '22 at 07:51
  • any update on this? because I'm running on the same problem, it works on ios but not on android, I also tested it with a real device still not working the logs are not very clear on what is the problem. – NiiTii Jan 09 '23 at 15:10
  • hello NiiTii, I used flutter map package instead of google maps. We did not solve the error because the administration wanted a free map service. – benimbolat Jan 11 '23 at 06:39

2 Answers2

0

trying out all the above in Summary:

  • Enabled Android and iOs SDK on Cloud Console
  • Added Secret Key to Android Manifest
  • Adding Map on my App
  • Running the command Flutter clean
  • check all config google map for android
  • Uninstall the app from your device (Phone or Emulator) then compile afresh.
Xuuan Thuc
  • 2,340
  • 1
  • 5
  • 22
  • I tried all of them. I created emulator with different SDK, upgraded and downgraded but in vain. It kept giving the error "DEBUG CONSOLE : Unexpected response code 503 for https://clients4.google.com/glm/mmap/api" – benimbolat May 19 '22 at 06:52
0

Below permissions missing in your androidfestml file check out,

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dotdot.dot_dot>

//add this one
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

 <application
    android:label="APP Name"
    android:icon="@mipmap/ic_launcher"
    android:usesCleartextTraffic="true">

//add this too
<meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
Gejaa
  • 74
  • 1
  • 7