Grey map on some Android devices
A customer reported grey tiles on the map. The customer has very good internet connection. On all other devices we tested with the same version, the map displayed normally.
Mapbox Flutter SDK Version: 2.5.1 The device: HUAWEI Mate 20 Pro OS Version: EMUI 12.0.0 RAM: 6GB
The customer reported, that sometimes, the map actually gets displayed but then the whole app gets stuck shortly after.
I hope someone can help out to find the issue.
Wondering this this is the same issue one of my users is experiencing.... Here is the screenshot
Mapbox Flutter SDK Version: 2.7.0 The Device: HUAWEI Android Model: CLT-L09 Flutter Version: 3.29.0
Keen to hear any updates on this one!
Here are our screenshots, sometimes it is a big rendering bug pattern but most of the time it just stays grey.
Thanks for reporting -- we are investigating on our side now.
Hey @pjleonard37. Have you guys managed to find out what's going on? We have had a few more users report the issue, even got a 1 star review so quite motivated to get to the bottom of this.
Let me know if there is any more information you need that might be helpful
Hi @kiwi-koder -
Thanks for checking in. We've been investigating, but have not succeeded in replicating the issue on our side making it difficult to debug. Do you have a code sample which reliably reproduces the issue (either on a physical devices or in an emulator)? If so, could you share it?
I haven't actually been able to reproduce the issue myself sorry! We managed to capture an error being produced by the person experiencing this issue though.
PlatformException(channel-error, Unable to establish connection on channel: "dev.flutter.pigeon.mapbox_maps_flutter._PointAnnotationMessenger.setTextIgnorePlacement.0"., null, null)
point_annotation_messenger.dart in _PointAnnotationMessenger.setTextIgnorePlacement at line 2417 within mapbox_maps_flutter
This particular error started appearing in our logs when we upgraded.
It looks to be happening on a range of devices across both ios and android. The two reports from users so far have only come from android, so maybe the error is being handled gracefully on ios or we just haven't had anyone using ios report the issue yet.
Hopefully that helps!
Hi @kiwi-koder -
Thanks for the additional information. We're still unable to replicate this locally, which makes it difficult to investigate (and confirm any potential fix).
One potential idea: which Android Platform View Mode are you using? Our default is Virtual Display, with which there are some known compatibility issues. Switching to Hybrid Composition may help here. Unfortunately, there are known issues with each mode (described here). You can control which mode is used with the androidHostingMode property.
We were able to capture this log from a physical device. Not sure if it helps you guys.
V/AudioManager( 1893): querySoundEffectsEnabled...
I/Mbgl-FontUtils( 1893): Couldn't map font family for local ideograph, using sans-serif instead
E/ThemeUtils( 1893): View class com.mapbox.maps.plugin.compass.CompassViewImpl is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
E/ThemeUtils( 1893): View class com.mapbox.maps.plugin.logo.LogoViewImpl is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
E/ThemeUtils( 1893): View class com.mapbox.maps.plugin.attribution.AttributionViewImpl is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
I/PlatformViewsController( 1893): Hosting view in view hierarchy for platform view: 8
I/flutter ( 1893): [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
I/PlatformViewsController( 1893): PlatformView is using SurfaceProducer backend
D/mali_winsys( 1893): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
E/flutter ( 1893): [ERROR:flutter/shell/platform/android/surface_texture_external_texture_vk_impeller.cc(122)] Break on 'ImpellerValidationBreak' to inspect point of failure: Invalid external texture.
E/flutter ( 1893): [ERROR:flutter/shell/platform/android/surface_texture_external_texture_vk_impeller.cc(122)] Break on 'ImpellerValidationBreak' to inspect point of failure: Invalid external texture.
D/mali_winsys( 1893): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
I/HwViewRootImpl( 1893): removeInvalidNode all the node in jank list is out of time
[mapbox-maps-flutter] [maps-android\Mbgl-RenderThread]: renderThreadPrepared=false and Android surface is not valid (isValid=null). Waiting for new one.
[mapbox-maps-flutter] [maps-android\Mbgl-RenderThread]: Renderer resumed, renderThreadPrepared=false, surface.isValid=null
W/com.smartboati( 1893): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
W/com.smartboati( 1893): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)
[mapbox-maps-flutter] [maps-android\Mbgl-RenderThread]: renderThreadPrepared=false and Android surface is not valid (isValid=null). Waiting for new one.
W/OpenGLRenderer( 1893): dequeueBuffer failed, error = -110; switching to fallback
[mapbox-maps-flutter] [maps-android\Mbgl-RenderThread]: renderThreadPrepared=false and Android surface is not valid (isValid=null). Waiting for new one.
[mapbox-maps-flutter] [maps-android\Mbgl-RenderThread]: renderThreadPrepared=false and Android surface is not valid (isValid=null). Waiting for new one.
[mapbox-maps-flutter] [maps-android\Mbgl-RenderThread]: onSurfaceCreated
[mapbox-maps-flutter] [maps-android\Mbgl-RenderThread]: onSurfaceCreated: waiting Android surface to be processed...
[mapbox-maps-flutter] [maps-android\Mbgl-RenderThread]: Setting up render thread, flags: creatingSurface=true, nativeRenderCreated=false, eglContextMadeCurrent=false, eglContextCreated=false, paused=false
[mapbox-maps-flutter] [maps-android\Mbgl-EGLConfigChooser]: In emulator: false
W/OpenGLRenderer( 1893): reserveNext failed, error = -2147483648 (Unknown error -2147483648)
E/BufferQueueProducer( 1893): [SurfaceTexture-0-1893-16]:1338: disconnect: not connected (req=1)
W/libEGL ( 1893): EGLNativeWindowType 0x7843b2e590 disconnect failed
[mapbox-maps-flutter] [maps-android\Mbgl-EglCore]: EGLContext created, client version 3
[mapbox-maps-flutter] [maps-core]: Using OpenGL render backend
[mapbox-maps-flutter] [maps-android\Mbgl-RenderThread]: Native renderer created.
I/HwViewRootImpl( 1893): removeInvalidNode jank list is null
[mapbox-maps-flutter] [maps-android\Mbgl-RenderThread]: onSurfaceCreated: Android surface was processed.
I/com.smartboati( 1893): Background concurrent copying GC freed 587232(16MB) AllocSpace objects, 3(50MB) LOS objects, 14% free, 144MB/168MB, paused 585us total 187.249ms
I/com.smartboati( 1893): Background young concurrent copying GC freed 1193145(32MB) AllocSpace objects, 3(60KB) LOS objects, 1% free, 166MB/168MB, paused 638us total 212.975ms
W/com.smartboati( 1893): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
W/com.smartboati( 1893): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)
I/com.smartboati( 1893): Background concurrent copying GC freed 1603226(43MB) AllocSpace objects, 5(100KB) LOS objects, 11% free, 183MB/207MB, paused 607us total 406.272ms
I/com.smartboati( 1893): Background young concurrent copying GC freed 1734389(47MB) AllocSpace objects, 4(80KB) LOS objects, 4% free, 197MB/207MB, paused 619us total 260.986ms
I/com.smartboati( 1893): Background concurrent copying GC freed 2514162(68MB) AllocSpace objects, 6(120KB) LOS objects, 9% free, 237MB/261MB, paused 601us total 628.238ms
I/com.smartboati( 1893): Background young concurrent copying GC freed 2318281(62MB) AllocSpace objects, 13(4720KB) LOS objects, 9% free, 236MB/260MB, paused 633us total 314.214ms
W/com.smartboati( 1893): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
W/com.smartboati( 1893): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)
Hi @kiwi-koder, @David-Prelinger could you check if the issue is happening with the latest Flutter SDK(3.32.5)?
Closing as we haven't received any significant feedback.