Skip to content

Google Maps is not visible on Android versions below 11 #163473

Closed

Description

@Maddy-Flutter

Steps to reproduce

Image

`class HomePage extends StatefulWidget {
const HomePage({super.key,);

@OverRide
State createState() => _HomePageState();
}

class _HomePageState extends State {
final Completer _controller = Completer();
AuthViewModel? authViewModel;
late ProfileViewModel _profileViewModel;

String? _mapStyle;
String pinningAddress = "";
double? lat, long;
LatLng? mapLatLong;

CameraPosition? cameraPosition;
DateTime? backButtonPressedTime;
@OverRide
void initState() {
super.initState();
_loadMapStyle();
authViewModel = Provider.of(context, listen: false);
profileViewModel = Provider.of(context, listen: false);
WidgetsBinding.instance.addPostFrameCallback((
) {
_setLocation();
_profileViewModel.fetchProfileDetails();
_showLocationBottomSheet();
});
}

getAddress() async {
List placeMarks = await placemarkFromCoordinates(
cameraPosition!.target.latitude,
cameraPosition!.target.longitude,
);
setState(() {
pinningAddress =
"${placeMarks.first.name},${placeMarks.first.thoroughfare!.isEmpty ? "" : "${placeMarks.first.thoroughfare},"}${placeMarks.first.locality},${placeMarks.first.postalCode},${placeMarks.first.administrativeArea},${placeMarks.first.country}. ";
mapLatLong = LatLng(
cameraPosition!.target.latitude,
cameraPosition!.target.longitude,
);
// Logger.appLogs("lat::$lat lan:: $long ${placeMarks.toString()}");
});
}

_setLocation(){
authViewModel?.getCurrentLocation();
lat = authViewModel?.currentLocation?.latitude;
long = authViewModel?.currentLocation?.longitude;
cameraPosition = CameraPosition(
target: LatLng(lat ?? 9.924045, long ??78.122215)
);
getAddress();
}

void _loadMapStyle() async {
_mapStyle = await rootBundle.loadString(FileAssets.mapStyle);
}

void _showLocationBottomSheet() {
locationBottomSheet(context: context, validFun: () {});
}

Future _onWillPop() async {
DateTime currentTime = DateTime.now();
if (backButtonPressedTime == null ||
currentTime.difference(backButtonPressedTime!) >
const Duration(seconds: 3)) {
backButtonPressedTime = currentTime;
ToastContext().init(context);
ToastUtil.showSnackBar(context, Strings.pressBackAgain);
return false;
}
SystemChannels.platform.invokeMethod('SystemNavigator.pop');
return true;
}

@OverRide
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: _onWillPop,
child: Consumer(
builder: (context,value,widget) {
return Scaffold(
extendBodyBehindAppBar: true,
backgroundColor: AppColorData.appSecondaryColor,
appBar: CommonAppBar(
backgroundColor: AppColorData.transparent,
titleText: "",
isLeadingWidget: true,
leading: _buildProfileWidget(value.profileDetailsResponseModel),
actions: [
locationButtonWidget(
controller: _controller,
latitude: lat,
longitude: long,
setState: setState,
onTap: () async {
GoogleMapController googleMapController = await _controller.future;
googleMapController.animateCamera(
CameraUpdate.newCameraPosition(
CameraPosition(
zoom: 18,
target: LatLng(
lat!,
long!,
),
),
),
);
}
),
],
),
body: _buildBody(),
);
}
),
);
}

Widget _buildBody() {
return Stack(
children: [
_buildGoogleMap(),
_buildAddress(),
_buildPin(),
_buildBottomSheet(),
],
);
}

Widget _buildGoogleMap() {
if (lat == null || long == null) {
return const Loader();
}

return GoogleMap(
   compassEnabled: false,
   buildingsEnabled: false,
  myLocationEnabled: true,
   mapToolbarEnabled: false,
   myLocationButtonEnabled: false,

  initialCameraPosition: CameraPosition(
    target: LatLng(lat!, long!),
    zoom: 18,
  ),
  onCameraIdle: () async {
    await getAddress();
  },
  onCameraMove: (position) {
    cameraPosition = position;
  },
  style: _mapStyle,
  onMapCreated: (mapController) {
    _controller.complete(mapController);
  },
);

}

Widget _buildPin() {
return Center(
child: SvgPicture.asset(SVGAssets.locationPicker, height: 25, width: 25),
);
}

Widget _buildAddress(){
return Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Container(
width: 200,

        padding: const EdgeInsets.all(8.0),
        decoration: BoxDecoration(
          color: AppColorData.appSecondaryColor,
          borderRadius: BorderRadius.circular(6)
        ),
        child: CommonText(
          text: pinningAddress,
          textAlign: TextAlign.center,
          maxLines: 2,
          overflow: TextOverflow.ellipsis,
          style: context.bodySmall,
        ),
      ),
      SizedBox(height: 90,)
    ],
  ),
);

}

Widget _buildBottomSheet() {
return Positioned(
bottom: 0.0,
left: 0.0,
right: 0.0,
child: InitBottomSheet(
context: context,
controller: _controller,
initPinAddress: pinningAddress,
latLong: mapLatLong),
);
}

Widget _buildProfileWidget(ProfileDetailsResponseModel? value) {
return GestureDetector(
onTap: () {
locationBottomSheet(
context: context,
validFun: () => Get.toNamed(RouterNames.profileMenu),
);
},
child: Container(
height: 40,
margin: EdgeInsets.only(top: 10, left: 10),
width: 40,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(100),
color: AppColorData.transparent,
),
child: ClipRRect(
borderRadius: BorderRadius.circular(100),
child: Image.network("${EndPointConstants.baseUrl}/${value?.data?.profile?.profile}",
fit: BoxFit.cover,
errorBuilder: (context, error, stackTrace) =>
SvgPicture.asset(SVGAssets.emptyProfileImg)),
),
),
);
}
}`

Actual results

only working up to android versions 11 kindly help me to fix this issue

Logs

Logs
D/MapsInitializer(24092): preferredRenderer: null
D/zzcc    (24092): preferredRenderer: null
I/zzcc    (24092): Making Creator dynamically
W/.rebustar.ride(24092): Accessing hidden method Lsun/misc/Unsafe;->putInt(Ljava/lang/Object;JI)V (greylist, linking, allowed)
I/DynamiteModule(24092): Considering local module com.google.android.gms.maps_core_dynamite:0 and remote module com.google.android.gms.maps_core_dynamite:245125201
I/DynamiteModule(24092): Selected remote version of com.google.android.gms.maps_core_dynamite, version >= 245125201
V/DynamiteModule(24092): Dynamite loader version >= 2, using loadModule2NoCrashUtils

W/.rebustar.ride(24092): Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed)
I/Google Android Maps SDK(24092): Google Play services package version: 250632013
W/.rebustar.ride(24092): Accessing hidden method Lsun/misc/Unsafe;->getUnsafe()Lsun/misc/Unsafe; (greylist,core-platform-api, linking, allowed)
I/Google Android Maps SDK(24092): Google Play services maps renderer version(maps_core): 245125201
D/de      (24092): about to start loading native library asynchronously
W/.rebustar.ride(24092): Accessing hidden method Lsun/misc/Unsafe;->compareAndSwapObject(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z (greylist, linking, allowed)
W/t       (24092): Suppressed StrictMode policy violation: StrictModeDiskReadViolation
I/o       (24092): Using GMM server: https://clients4.google.com/glm/mmap
W/t       (24092): Suppressed StrictMode policy violation: StrictModeDiskReadViolation
W/t       (24092): Suppressed StrictMode policy violation: StrictModeDiskWriteViolation
W/t       (24092): Suppressed StrictMode policy violation: StrictModeDiskReadViolation
D/o       (24092): Using Non-null serverVersionMetadataManager to load previous metadata.

I/native  (24092): I0000 00:00:1739791328.027817   24092 jni_init.cc:30] Initializing JNI...
W/.rebustar.ride(24092): Accessing hidden method Lsun/misc/Unsafe;->putInt(Ljava/lang/Object;JI)V (greylist, linking, allowed)
I/Google Android Maps SDK(24092): Google Play services client version: 18020000

I/flutter (24092): [IMPORTANT:flutter/shell/platform/android/platform_view_android.cc(308)] Flutter recommends migrating plugins that create and register surface textures to the new surface producer API. See https://docs.flutter.dev/release/breaking-changes/android-surface-plugins
W/ProxyAndroidLoggerBackend(24092): Too many Flogger logs received before configuration. Dropping old logs.
W/ProxyAndroidLoggerBackend(24092): Too many Flogger logs received before configuration. Dropping old logs.

W/OpenGLRenderer(24092): dequeueBuffer failed, error = -110; switching to fallback
E/ANR_LOG (24092): >>> msg's executing time is too long
E/ANR_LOG (24092): Blocked msg = { when=-4s18ms what=0 target=android.view.Choreographer$FrameHandler callback=android.view.Choreographer$FrameDisplayEventReceiver } , cost  = 4018 ms
E/ANR_LOG (24092): >>>Current msg List is:
E/ANR_LOG (24092): Current msg <1>  = { when=-4s22ms what=0 target=android.os.Handler callback=com.google.maps.api.android.lib6.impl.cd }
E/ANR_LOG (24092): Current msg <2>  = { when=-4s17ms barrier=105 }
E/ANR_LOG (24092): Current msg <3>  = { when=-553ms what=1 target=android.location.LocationManager$GnssStatusListenerTransport$GnssHandler }
E/ANR_LOG (24092): >>>CURRENT MSG DUMP OVER<<<
I/Choreographer(24092): Skipped 241 frames!  The application may be doing too much work on its main thread.
D/Surface (24092): lockHardwareCanvas
W/OpenGLRenderer(24092): reserveNext failed, error = -2147483648 (Unknown error -2147483648)
D/Surface (24092): Surface::disconnect(this=0x703968c000,api=1)
I/BufferQueueProducer(24092): [SurfaceTexture-0-24092-0](this:0x704379f000,id:0,api:1,p:24092,c:24092) disconnect(P): api 1
I/OpenGLRenderer(24092): Davey! duration=4031ms; Flags=0, IntendedVsync=25761595923750, Vsync=25765612590497, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=25765615182612, AnimationStart=25765615521612, PerformTraversalsStart=25765616195996, DrawStart=25765617373381, SyncQueued=25765622981150, SyncStart=25765623884919, IssueDrawCommandsStart=25765624209689, SwapBuffers=25765626302843, FrameCompleted=25765628275073, DequeueBufferDuration=336000, QueueBufferDuration=647000, 

Flutter Doctor output

Doctor output
 flutter doctor -v
[✓] Flutter (Channel stable, 3.29.0, on Ubuntu 20.04.4 LTS 5.15.0-102-generic, locale en_IN) [238ms]
    • Flutter version 3.29.0 on channel stable at /home/abservetech/snap/flutter/common/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 35c388afb5 (7 days ago), 2025-02-10 12:48:41 -0800
    • Engine revision f73bfc4522
    • Dart version 3.7.0
    • DevTools version 2.42.2

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) [2.5s]
    • Android SDK at /home/abservetech/Android/Sdk
    • Platform android-35, build-tools 34.0.0
    • Java binary at: /snap/android-studio/161/jbr/bin/java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11609105)
    • All Android licenses accepted.

[✓] Chrome - develop for the web [158ms]
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop [822ms]
    • clang version 10.0.0-4ubuntu1
    • cmake version 3.16.3
    • ninja version 1.10.0
    • pkg-config version 0.29.1

[✓] Android Studio (version 2024.1) [157ms]
    • Android Studio at /snap/android-studio/161
    • Flutter plugin version 83.0.2
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11609105)

[✓] Android Studio (version 2023.3) [72ms]
    • Android Studio at /snap/android-studio/157
    • Flutter plugin version 80.0.1
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)

[✓] VS Code (version 1.92.2) [10ms]
    • VS Code at /usr/share/code
    • Flutter extension version 3.104.0

[✓] Connected device (3 available) [190ms]
    • RMX1825 (mobile) • G6PJEMDUCU55YLUK • android-arm64  • Android 10 (API 29)
    • Linux (desktop)  • linux            • linux-x64      • Ubuntu 20.04.4 LTS 5.15.0-102-generic
    • Chrome (web)     • chrome           • web-javascript • Google Chrome 124.0.6367.60

[✓] Network resources [511ms]
    • All expected network resources are available.

• No issues found!

Activity

  1. jonahwilliams commented on Feb 17, 2025

    @jonahwilliams
    Contributor

    Please provide information on the kind of device you are using (model, API level, et cetera)

  2. added
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Feb 17, 2025
  3. Maddy-Flutter commented on Feb 19, 2025

    @Maddy-Flutter
    Author

    am using realme device
    android : 10
    API level: 29

  4. removed
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Feb 19, 2025
  5. jonahwilliams commented on Feb 19, 2025

    @jonahwilliams
    Contributor
  6. added
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Feb 19, 2025
  7. s17476 commented on Feb 20, 2025

    @s17476

    Same problem here. After upgrading to Flutter 3.29 the map doesn't show up, or shows up partially but doesn't respond.

    In Flutter 2.27 it worked on this device, but I had info from testers that the map doesn't work for them (on MediaTek processors), so I went back to 3.24.

    Device: Huawei Mate 20 Pro (with GMS)
    Software: EMUI 12, which on this device is Android 10?

    Image

    Image

  8. basemosama commented on Feb 23, 2025

    @basemosama

    Same proplem with Mate 20 pro after upgrading to v3.29 also which runs on Android 10 when impeller is disabled.

    When impeller is disabled The map works fine on v3.27.4 but doesn't render the map on v3.29
    When enabled It doesn't render on both 3.27.4 and 3.29

    If I run via hot reload the map might render but freezes the view and can't move.

  9. github-actions commented on Mar 12, 2025

    @github-actions

    Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now.
    If you find this problem please file a new issue with the same description, what happens, logs and the output of 'flutter doctor -v'. All system setups can be slightly different so it's always better to open new issues and reference the related ones.
    Thanks for your contribution.

  10. github-actions commented on Mar 26, 2025

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  11. locked as resolved and limited conversation to collaborators on Mar 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    in triagePresently being triaged by the triage teamwaiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions