mapbox / mapbox/mapbox-maps-flutter
Exception thrown after calling `dispose()` on MapboxMap
Nessuno ha ancora preso questa issue.
- Lingua principale
- Dart
- Stelle
- 380
- Fork
- 204
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
## Environment
- Flutter version: `3.16.9`
- mapbox_maps_flutter version: `0.5.1`
- Device: `iPhone Simulator`
- OS: `iOS 17.2`
## Steps to Reproduce
- Navigate to a screen with MapWidget
- Pop the screen with MapWidget
Code: [GitHub Gist](https://gist.github.com/kalucky0/59f2649c482abd94abc5a2a1c78e6d2f)
## Description
I'm encountering an issue where an exception is thrown after exiting a screen and calling `dispose()` on `MapboxMap`. The exception message suggests that the `MapboxMap` object is being used after being disposed.
## Expected Behavior
After calling `dispose()` on a `MapboxMap` object, the object is disposed of properly and no exception is thrown.
## Actual Behavior
The following exception is thrown:
```yaml
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: A MapboxMap was used after being disposed.
Once you have called dispose() on a MapboxMap, it can no longer be used.
#0 ChangeNotifier.debugAssertNotDisposed. (package:flutter/src/foundation/change_notifier.dart:179:9)
#1 ChangeNotifier.debugAssertNotDisposed (package:flutter/src/foundation/change_notifier.dart:186:6)
#2 ChangeNotifier.dispose (package:flutter/src/foundation/change_notifier.dart:375:27)
#3 MapboxMap.dispose (package:mapbox_maps_flutter/src/mapbox_map.dart:194:11)
#4 _MapWidgetState.dispose (package:mapbox_maps_flutter/src/map_widget.dart:208:18)
```
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia leggendo i percorsi di rilascio in src/mapbox_maps_flutter/src/mapbox_map.dart e src/mapbox_maps_flutter/src/map_widget.dart, usando i passaggi di riproduzione collegati e il Gist per riprodurre il problema. Il lavoro è completato quando è possibile uscire da una schermata contenente MapWidget e rilasciare il relativo MapboxMap senza che si verifichi l’eccezione use-after-dispose segnalata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- dart, ios
- Ambito
- mobile
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100