mapbox / mapbox/mapbox-maps-flutter
getStyleImage & hasStyleImage methods not responding
Nobody has claimed this yet.
- Dominant language
- Dart
- Stars
- 380
- Forks
- 204
- PR merge metrics
- No merged PRs in 30d
Description
### **Environment**
Flutter version: 3.13.0
mapbox_maps_flutter version: 1.0.0-beta.3
Device: Samsung Galaxy A53
OS: Android 14
### **Steps to Reproduce**
Call `getStyleImage(imageId)` or `hasStyleImage(imageId)` methods from StyleManager
### **Expected Behavior**
These two methods should return either a `Future` or a `Future`
### **Actual Behavior**
`getStyleImage(imageId)` actually throw the following exception:
`E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): Failed to handle message
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): java.lang.IllegalStateException: Reply already submitted
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:435)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at io.flutter.plugin.common.BasicMessageChannel$IncomingMessageHandler$1.reply(BasicMessageChannel.java:224)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at com.mapbox.maps.pigeons.FLTMapInterfaces$StyleManager$33.success(FLTMapInterfaces.java:10964)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at com.mapbox.maps.pigeons.FLTMapInterfaces$StyleManager$33.success(FLTMapInterfaces.java:10961)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at com.mapbox.maps.mapbox_maps.StyleController.getStyleImage(StyleController.kt:487)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at com.mapbox.maps.pigeons.FLTMapInterfaces$StyleManager$-CC.lambda$setUp$42(FLTMapInterfaces.java:10973)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at com.mapbox.maps.pigeons.FLTMapInterfaces$StyleManager$$ExternalSyntheticLambda30.onMessage(Unknown Source:2)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at io.flutter.plugin.common.BasicMessageChannel$IncomingMessageHandler.onMessage(BasicMessageChannel.java:219)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at android.os.Handler.handleCallback(Handler.java:958)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at android.os.Handler.dispatchMessage(Handler.java:99)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at android.os.Looper.loopOnce(Looper.java:230)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at android.os.Looper.loop(Looper.java:319)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at android.app.ActivityThread.main(ActivityThread.java:8893)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at java.lang.reflect.Method.invoke(Native Method)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
E/DartMessenger(13885): Uncaught exception in binary message listener`
`hasStyleImage(imageId)` returns nothing
Thanks.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the Android implementation in StyleController.kt around line 487 and trace the StyleManager getStyleImage and hasStyleImage entry points through FLTMapInterfaces.java. Reproduce the calls on Android and inspect how each asynchronous reply is returned. Done means getStyleImage returns one Future without a duplicate reply and hasStyleImage returns the expected Future.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, dart, flutter
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100