Skip to content

Android only: Map disappear when resized #949

Description

@treacks5

When the map do some operations and especially when the map is resize, the map disappears sometimes.

I create minimalist project to know if it depends on our project but I can reproduce it after some tries.

No exception is thrown and on the console no error tell us why we have this behaviour.

Here is the video of the bug ⬇️

Untitled_720.mov

The code ⬇️

onPressed: () {
          print("Resize screen");
          setState(() {
            _counter++;
          });
        }
...
body: Column(
        children: [
          if (_counter != 0)
            Container(
              color: Colors.pink,
              height: 200,
              width: double.infinity,
            ),
          Expanded(
            child: MapboxMap(
              ... MAPBOX CONFIGURATION ...
            ),
          ),
        ],
      )

And the console output ⬇️ (I added the wording <== THIS IS WHEN I CLICK ON THE BUTTON TO RESIZE THE MAPBOX WIDGET)

D/EGL_emulation(15827): app_time_stats: avg=5.49ms min=2.82ms max=42.54ms count=59
D/EGL_emulation(15827): app_time_stats: avg=25.15ms min=11.82ms max=84.92ms count=40
V/Mbgl-HttpRequest(15827): [HTTP] Request was successful (code = 200).
D/Mbgl-HttpRequest(15827): [HTTP] This request was cancelled (https://api.mapbox.com/v4/mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v7/3/4/2.vector.pbf?access_token=pk.eyJ1IjoibGVtZW5hZ2VyIiwiYSI6ImNrdndmYzVzdTA3cTIyb2xjaXZlYmlra2YifQ.pJRcBRee6jRVzm5v3JZR6g&style=mapbox://styles/mapbox/outdoors-v10@0&sku=100l0usr48570202b23b37b4bf5b2233beb96b8b142). This is expected for tiles that were being prefetched but are no longer needed for the map to render.
D/EGL_emulation(15827): app_time_stats: avg=187.99ms min=13.60ms max=3633.92ms count=24
I/flutter (15827): Resize screen <== THIS IS WHEN I CLICK ON THE BUTTON TO RESIZE THE MAPBOX WIDGET
E/libEGL  (15827): call to OpenGL ES API with no current context (logged once per thread)
E/BufferQueueProducer(15827): [SurfaceTexture-0-15827-0](id:3dd300000002,api:1,p:369,c:15827) connect: already connected (cur=1 req=1)
I/Mbgl-EGLConfigChooser(15827): In emulator: false
D/HostConnection(15827): createUnique: call
D/HostConnection(15827): HostConnection::get() New Host Connection established 0x7667231e90, tid 15970
D/HostConnection(15827): HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_null_optional_strings ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_YUV_Cache ANDROID_EMU_vulkan_ignored_handles ANDROID_EMU_has_shared_slots_host_memory_allocator ANDROID_EMU_vulkan_free_memory_sync ANDROID_EMU_vulkan_shader_float16_int8 ANDROID_EMU_vulkan_async_queue_submit ANDROID_EMU_vulkan_queue_submit_with_commands ANDROID_EMU_sync_buffer_data ANDROID_EMU_read_color_buffer_dma GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_gles_max_version_3_0 
D/EGL_emulation(15827): eglCreateContext: 0x7667244250: maj 3 min 0 rcv 3
D/EGL_emulation(15827): eglMakeCurrent: 0x7667244250: ver 3 0 (tinfo 0x788db2b280) (first time)
E/BufferQueueProducer(15827): [SurfaceTexture-0-15827-0](id:3dd300000002,api:0,p:-1,c:15827) dequeueBuffer: BufferQueue has no connected producer
E/BufferQueueProducer(15827): [SurfaceTexture-0-15827-0](id:3dd300000002,api:0,p:-1,c:15827) dequeueBuffer: BufferQueue has no connected producer
E/BufferQueueProducer(15827): [SurfaceTexture-0-15827-0](id:3dd300000002,api:0,p:-1,c:15827) dequeueBuffer: BufferQueue has no connected producer

Flutter config ⬇️
Flutter 2.10.3 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 7e9793dee1 (2 weeks ago) • 2022-03-02 11:23:12 -0600
Engine • revision bd539267b4
Tools • Dart 2.16.1 • DevTools 2.9.2

Tested devices ⬇️

  • Emulator Pixel 4a Android 12.0
  • Emulator Nexus 5 Android 12.0
  • Pixel 4a Android 12.0

=> Not reproduced with Android 11.0

Tested environnements ⬇️
Debug & Release

Is anyone experienced the same behaviour on Android 12.0 or an other version ?
I didn't find any fix for the moment.

Also, I noticed that on Android the rescale behaviour is stretch and on iOS it is a fitHeight (which is a lot better than stretch). Maybe we can change this rescale behaviour ?

Activity

  1. felix-ht commented on Mar 17, 2022

    @felix-ht
    Collaborator

    should be fixed with #916

  2. treacks5 commented on Mar 22, 2022

    @treacks5
    Author

    Ok, it is working on master.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions