Flutter useHybridComposition cause crash #732
Description
Environment
- Android OS version: at least API 29 (10)
- Devices affected: Samsung S9
- Maps SDK Version: Flutter Mapbox-gl v0.16.0
Observed behavior and steps to reproduce
When running an app with MapboxMap.useHybridComposition = true; and doing some multitouch on the map, you can easily get some app crashes.
here are the produced logs :
I/ViewRootImpl@e968b84[MainActivity](17240): ViewPostIme pointer 0
W/MultiFingerGesture(17240): Some MotionEvents were not passed to the library or events from different view trees are merged.
W/MultiFingerGesture(17240): Some MotionEvents were not passed to the library or events from different view trees are merged.
I/flutter (17240): UserRepository _notifyUpdate updateDetected:false with 0 item(s)
F/libc (17240): Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 17240 (mobile.team.dev), pid 17240 (mobile.team.dev)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/starltexx/starlte:10/QP1A.190711.020/G960FXXUHFVB4:user/release-keys'
Revision: '26'
ABI: 'arm64'
Timestamp: 2022-05-31 15:30:39+0200
pid: 17240, tid: 17240, name: mobile.team.dev >>> com.vulog.carshare.oa.mobile.team.dev <<<
uid: 11028
signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
Abort message: 'ubsan: shift-out-of-bounds'
x0 0000000000000000 x1 0000000000004358 x2 0000000000000006 x3 0000007fdd49f910
x4 0000000000000000 x5 0000000000000000 x6 0000000000000000 x7 0000000000000010
x8 00000000000000f0 x9 000000733df4c5e0 x10 0000000000000000 x11 0000000000000001
x12 0000000000000008 x13 0000000000000014 x14 0000000000000008 x15 0000000000000019
x16 000000733e01a8c0 x17 000000733dff7880 x18 0000007342056000 x19 00000000000000ac
x20 0000000000004358 x21 00000000000000b2 x22 0000000000004358 x23 00000000ffffffff
x24 0000007341b6e020 x25 00000000154cdae0 x26 0000000013e3ed90 x27 0000000013e33378
x28 0000000013e3ea98 x29 0000007fdd49f9c0
sp 0000007fdd49f8f0 lr 000000733dfab330 pc 000000733dfab360
backtrace:
#00 pc 0000000000083360 /apex/com.android.runtime/lib64/bionic/libc.so (abort+176) (BuildId: 3f350ca06c3b80560f65755286daf320)
mapbox/mapbox-maps-android#1 pc 000000000002c06c /system/lib64/libinput.so (abort_with_message(char const*)+20) (BuildId: e48e0a6a2819b165ee68017ba2d6b61f)
mapbox/mapbox-maps-android#2 pc 000000000002c0f8 /system/lib64/libinput.so (__ubsan_handle_shift_out_of_bounds_minimal_abort+24) (BuildId: e48e0a6a2819b165ee68017ba2d6b61f)
mapbox/mapbox-maps-android#3 pc 000000000002a48c /system/lib64/libinput.so (android::VelocityTracker::addMovement(android::MotionEvent const*)+884) (BuildId: e48e0a6a2819b165ee68017ba2d6b61f)
mapbox/mapbox-maps-android#4 pc 00000000002ed494 /system/framework/arm64/boot-framework.oat (art_jni_trampoline+180) (BuildId: d9f5e98f49949c317e5890da1317a97a9c9c5fbb)
mapbox/mapbox-maps-android#5 pc 000000000208f79c /memfd:/jit-cache (deleted) (android.view.VelocityTracker.addMovement+60)
mapbox/mapbox-maps-android#6 pc 00000000020779e0 /memfd:/jit-cache (deleted) (android.view.GestureDetector.onTouchEvent+304)
mapbox/mapbox-maps-android#7 pc 0000000002093440 /memfd:/jit-cache (deleted) (androidx.core.view.GestureDetectorCompat$GestureDetectorCompatImplJellybeanMr2.onTouchEvent+64)
mapbox/mapbox-maps-android#8 pc 000000000209ac78 /memfd:/jit-cache (deleted) (androidx.core.view.GestureDetectorCompat.onTouchEvent+72)
mapbox/mapbox-maps-android#9 pc 000000000208e6ec /memfd:/jit-cache (deleted) (com.mapbox.android.gestures.StandardScaleGestureDetector.analyzeEvent+300)
mapbox/mapbox-maps-android#10 pc 000000000207cc28 /memfd:/jit-cache (deleted) (com.mapbox.android.gestures.BaseGesture.analyze+344)
mapbox/mapbox-maps-android#11 pc 00000000020856ac /memfd:/jit-cache (deleted) (com.mapbox.android.gestures.BaseGesture.onTouchEvent+44)
mapbox/mapbox-maps-android#12 pc 00000000020767e0 /memfd:/jit-cache (deleted) (com.mapbox.android.gestures.AndroidGesturesManager.onTouchEvent+224)
mapbox/mapbox-maps-android#13 pc 00000000020a757c /memfd:/jit-cache (deleted) (com.mapbox.mapboxsdk.plugins.annotation.DraggableAnnotationController$1.onTouch+108)
mapbox/mapbox-maps-android#14 pc 000000000208b1d4 /memfd:/jit-cache (deleted) (android.view.View.dispatchTouchEvent+948)
mapbox/mapbox-maps-android#15 pc 000000000207e3cc /memfd:/jit-cache (deleted) (android.view.ViewGroup.dispatchTransformedTouchEvent+252)
mapbox/mapbox-maps-android#16 pc 000000000208a748 /memfd:/jit-cache (deleted) (android.view.ViewGroup.dispatchTouchEvent+4104)
mapbox/mapbox-maps-android#17 pc 000000000208cf58 /memfd:/jit-cache (deleted) (io.flutter.plugin.platform.PlatformViewsController$1.onTouch+536)
mapbox/mapbox-maps-android#18 pc 0000000002076f18 /memfd:/jit-cache (deleted) (io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.touch+1480)
mapbox/mapbox-maps-android#19 pc 000000000208ec00 /memfd:/jit-cache (deleted) (io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.onMethodCall+1168)
mapbox/mapbox-maps-android#20 pc 000000000208dc68 /memfd:/jit-cache (deleted) (io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage+232)
mapbox/mapbox-maps-android#21 pc 0000000002082624 /memfd:/jit-cache (deleted) (io.flutter.embedding.engine.dart.DartMessenger.invokeHandler+244)
mapbox/mapbox-maps-android#22 pc 000000000203ef1c /memfd:/jit-cache (deleted) (io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger+252)
mapbox/mapbox-maps-android-internal#205 pc 0000000002068f74 /memfd:/jit-cache (deleted) (io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run+132)
mapbox/mapbox-maps-android#24 pc 0000000002036a94 /memfd:/jit-cache (deleted) (android.os.Handler.handleCallback+68)
mapbox/mapbox-maps-android#25 pc 0000000002037fc0 /memfd:/jit-cache (deleted) (android.os.Handler.dispatchMessage+64)
mapbox/mapbox-maps-android#26 pc 00000000020acf50 /memfd:/jit-cache (deleted) (android.os.Looper.loop+1216)
mapbox/mapbox-maps-android#27 pc 000000000013863c /apex/com.android.runtime/lib64/libart.so (art_quick_osr_stub+60) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#28 pc 0000000000340a40 /apex/com.android.runtime/lib64/libart.so (art::jit::Jit::MaybeDoOnStackReplacement(art::Thread*, art::ArtMethod*, unsigned int, int, art::JValue*)+1688) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#29 pc 00000000005b5d04 /apex/com.android.runtime/lib64/libart.so (MterpMaybeDoOnStackReplacement+212) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android-internal#210 pc 0000000000137350 /apex/com.android.runtime/lib64/libart.so (MterpHelpers+240) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#31 pc 00000000003980c0 /system/framework/framework.jar (android.os.Looper.loop+1076)
mapbox/mapbox-maps-android#32 pc 00000000005adc18 /apex/com.android.runtime/lib64/libart.so (MterpInvokeStatic+1136) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#33 pc 0000000000132994 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_static+20) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#34 pc 00000000001a8998 /system/framework/framework.jar (android.app.ActivityThread.main+208)
mapbox/mapbox-maps-android#35 pc 00000000002bbe28 /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.5467380822148485331+240) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#36 pc 000000000059c210 /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1024) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#37 pc 0000000000141468 /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#38 pc 00000000001385b8 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#39 pc 00000000001470cc /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+276) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#40 pc 00000000004bad28 /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#41 pc 00000000004bc770 /apex/com.android.runtime/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1472) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#42 pc 0000000000447e90 /apex/com.android.runtime/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+48) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#43 pc 00000000000c8d34 /system/framework/arm64/boot.oat (art_jni_trampoline+180) (BuildId: 61ec5d1d9be4570882fca4a5ac76332f673e2f85)
mapbox/mapbox-maps-android#44 pc 0000000000138334 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#45 pc 00000000001470ac /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+244) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#46 pc 00000000002eb4f8 /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#47 pc 00000000002e6584 /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+900) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#48 pc 00000000005aad78 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+648) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#49 pc 0000000000132814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#50 pc 0000000000501642 /system/framework/framework.jar (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)
mapbox/mapbox-maps-android#51 pc 00000000002bbe28 /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.5467380822148485331+240) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android-internal#222 pc 000000000059c210 /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1024) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#53 pc 0000000000141468 /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#54 pc 0000000000abf764 /system/framework/arm64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+3012) (BuildId: d9f5e98f49949c317e5890da1317a97a9c9c5fbb)
mapbox/mapbox-maps-android#55 pc 00000000001385b8 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#56 pc 00000000001470cc /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+276) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#57 pc 00000000004bad28 /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#58 pc 00000000004ba988 /apex/com.android.runtime/lib64/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+408) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#59 pc 00000000003c48a8 /apex/com.android.runtime/lib64/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+624) (BuildId: 0680f97b9649cf08862df1e69e76e0f3)
mapbox/mapbox-maps-android#60 pc 00000000000ee3cc /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+116) (BuildId: fc35ebb304e552924cf0583921fca054)
mapbox/mapbox-maps-android#61 pc 00000000000f14ec /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+804) (BuildId: fc35ebb304e552924cf0583921fca054)
mapbox/mapbox-maps-android#62 pc 00000000000034f0 /system/bin/app_process64 (main+1184) (BuildId: d345cc25886f3d75c6e2e9c16568090a)
mapbox/mapbox-maps-android#63 pc 000000000007e854 /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108) (BuildId: 3f350ca06c3b80560f65755286daf320)
Lost connection to device.
Way to reproduce using the Mapbox Gl sample app:
- Be sure to have the MapboxMap.useHybridComposition = true; correctly initialized in lib/main.dart:
@override
void initState() {
initHybridComposition();
super.initState();
}
/// Determine the android version of the phone and turn off HybridComposition
/// on older sdk versions to improve performance for these
///
/// !!! Hybrid composition is currently broken do no use !!!
Future<void> initHybridComposition() async {
MapboxMap.useHybridComposition = true;
}
- Using the Full_Screen_Map section of the app, replace the Build method in lib/full_map.dart by :
@override
Widget build(BuildContext context) {
return new Scaffold(
floatingActionButton: Padding(
padding: const EdgeInsets.all(32.0),
child: FloatingActionButton(
child: Icon(Icons.swap_horiz),
onPressed: () => setState(
() => isLight = !isLight,
),
),
),
body: Stack(
children: [MapboxMap(
styleString: isLight ? MapboxStyles.LIGHT : MapboxStyles.DARK,
accessToken: MapsDemo.ACCESS_TOKEN,
onMapCreated: _onMapCreated,
initialCameraPosition: const CameraPosition(target: LatLng(0.0, 0.0)),
onStyleLoadedCallback: _onStyleLoadedCallback,
),
Center(
child: Container(
width: 50,
height: 50,
color: Colors.green,
),
),
]
));
}
This will simply add a widget on top of the map to reproduce the crash.
- Run the app, go to the FullScreenMap section
- To get the crash, simply do a multitouch tap as follow :
One digit on the map
The Other One on the green widget
Tap both at the same time.
You will get a crash.
It only crash if you tap a widget (flutter) stacked on top of the map (nativ view because of .useHybridComposition = true)
Expected behavior
We should not get any crash. Minimum requirement is to silently catch the exception. (this is what google maps seems to do - see below)
Notes / preliminary analysis
I have tested the same behavior on the GoogleMap sample app : https://github.com/flutter/plugins/tree/main/packages/google_maps_flutter/google_maps_flutter
I am able to reproduce the same kind of issue, Except that the google map do not Crash. There is only some flutter Error log :
I/ViewRootImpl@4ffe3aa[FlutterActivity](18949): ViewPostIme pointer 0
E/MethodChannel#flutter/platform_views(18949): Failed to handle method call
E/MethodChannel#flutter/platform_views(18949): java.lang.IllegalArgumentException: pointerIndex out of range
E/MethodChannel#flutter/platform_views(18949): at android.view.MotionEvent.nativeGetPointerId(Native Method)
E/MethodChannel#flutter/platform_views(18949): at android.view.MotionEvent.getPointerId(MotionEvent.java:2717)
E/MethodChannel#flutter/platform_views(18949): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3585)
E/MethodChannel#flutter/platform_views(18949): at io.flutter.plugin.platform.PlatformViewsController$1.onTouch(PlatformViewsController.java:313)
E/MethodChannel#flutter/platform_views(18949): at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.touch(PlatformViewsChannel.java:176)
E/MethodChannel#flutter/platform_views(18949): at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.onMethodCall(PlatformViewsChannel.java:68)
E/MethodChannel#flutter/platform_views(18949): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:262)
E/MethodChannel#flutter/platform_views(18949): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:296)
E/MethodChannel#flutter/platform_views(18949): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$DartMessenger(DartMessenger.java:320)
E/MethodChannel#flutter/platform_views(18949): at io.flutter.embedding.engine.dart.-$$Lambda$DartMessenger$AIEPqY6mWzaNK15HekX9bftoAXs.run(Unknown Source:12)
E/MethodChannel#flutter/platform_views(18949): at android.os.Handler.handleCallback(Handler.java:883)
E/MethodChannel#flutter/platform_views(18949): at android.os.Handler.dispatchMessage(Handler.java:100)
E/MethodChannel#flutter/platform_views(18949): at android.os.Looper.loop(Looper.java:237)
E/MethodChannel#flutter/platform_views(18949): at android.app.ActivityThread.main(ActivityThread.java:8167)
E/MethodChannel#flutter/platform_views(18949): at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#flutter/platform_views(18949): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
E/MethodChannel#flutter/platform_views(18949): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
I/ViewRootImpl@4ffe3aa[FlutterActivity](18949): ViewPostIme pointer 1
E/flutter (18949): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: PlatformException(error, pointerIndex out of range, null, java.lang.IllegalArgumentException: pointerIndex out of range
E/flutter (18949): at android.view.MotionEvent.nativeGetPointerId(Native Method)
E/flutter (18949): at android.view.MotionEvent.getPointerId(MotionEvent.java:2717)
E/flutter (18949): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3585)
E/flutter (18949): at io.flutter.plugin.platform.PlatformViewsController$1.onTouch(PlatformViewsController.java:313)
E/flutter (18949): at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.touch(PlatformViewsChannel.java:176)
E/flutter (18949): at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.onMethodCall(PlatformViewsChannel.java:68)
E/flutter (18949): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:262)
E/flutter (18949): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:296)
E/flutter (18949): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$DartMessenger(DartMessenger.java:320)
E/flutter (18949): at io.flutter.embedding.engine.dart.-$$Lambda$DartMessenger$AIEPqY6mWzaNK15HekX9bftoAXs.run(Unknown Source:12)
E/flutter (18949): at android.os.Handler.handleCallback(Handler.java:883)
E/flutter (18949): at android.os.Handler.dispatchMessage(Handler.java:100)
E/flutter (18949): at android.os.Looper.loop(Looper.java:237)
E/flutter (18949): at android.app.ActivityThread.main(ActivityThread.java:8167)
E/flutter (18949): at java.lang.reflect.Method.invoke(Native Method)
E/flutter (18949): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
E/flutter (18949): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
E/flutter (18949): )
E/flutter (18949): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:607:7)
E/flutter (18949): mapbox/mapbox-maps-android#1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:177:18)
E/flutter (18949): <asynchronous suspension>
E/flutter (18949): mapbox/mapbox-maps-android#2 AndroidViewController.sendMotionEvent (package:flutter/src/services/platform_views.dart:803:5)
E/flutter (18949): <asynchronous suspension>
E/flutter (18949): mapbox/mapbox-maps-android#3 AndroidViewController.dispatchPointerEvent (package:flutter/src/services/platform_views.dart:895:7)
E/flutter (18949): <asynchronous suspension>
E/flutter (18949):
Additional links and references
The issue is tracked in this repository - forwarded to the main Android Mapbox repository here:
flutter-mapbox-gl/maps#1077