Flutter GMSMapView updateWithCamera 崩溃 EXC_BAD_ACCESS KERN_PROTECTION_FAILURE

时间:2021-01-05 11:41:43

标签: flutter google-maps

我们在 iOS 上的 Flutter 应用中运行的 Google 地图偶尔会崩溃。我附上了堆栈跟踪的屏幕截图。有问题的电话是[GMSMapView updateWithCamera]

我们的设置基本上是:

BlocProvider<MapScreenBloc>GoogleMapsWidgetGoogleMaps(最后一个是来自 google_maps_flutter 插件的实际 Google 地图小部件)

在创建 GoogleMaps 小部件时,我们将 bloc 的 onMapCreated 函数传递给构造函数参数,以便它存储 GoogleMapController。我的猜测是,在某个时候我们正在调用 _mapController.animateCamera(),但控制器已被破坏,但我不知道如何调试它。

有没有其他人遇到过这种情况?关于如何调试/修复它的任何建议?

Crashlytics log

1 个答案:

答案 0 :(得分:2)

事实证明,谷歌地图的 iOS/Flutter 实现存在错误。我在这里为他们创建了一个 PR: https://github.com/flutter/plugins/pull/3426

事实证明,他们反复添加了 addObserver:,当那个 keypath 最终更新时,观察者被调用了很多次,以至于操作系统强迫应用程序关闭,因为它认为应用程序进入了无限循环。