google-maps - Flutter Google Maps 应用程序在浏览器中引发异常和崩溃,但在 Android 上却没有
问题描述
我正在使用这个流行的 YouTube 教程附带的代码。它是一个大系列的一部分,有很多视图,所以我希望它是好的代码。此外,它在 Android 上运行良好。
我按照官方使用 Flutter 构建 Web 应用程序,但是,当我在浏览器中启动我的应用程序时,它崩溃了。
这是崩溃前的痕迹:
dart.developer.registerExtension ext.flutter.inspector.getChildren developer_patch.dart:65:72 dart.developer.registerExtension ext.flutter.inspector.getChildrenSummaryTree developer_patch.dart:65:72 dart.developer.registerExtension ext.flutter.inspector.getChildrenDetailsSubtree developer_patch.dart:65:72 dart.developer.registerExtension ext.flutter.inspector.getRootWidget developer_patch.dart:65:72 dart.developer.registerExtension ext.flutter.inspector.getRootRenderObject developer_patch.dart:65:72 dart.developer.registerExtension ext.flutter.inspector.getRootWidgetSummaryTree developer_patch.dart:65:72 dart.developer.registerExtension ext.flutter.inspector.getDetailsSubtree developer_patch.dart:65:72 dart.developer.registerExtension ext.flutter.inspector.getSelectedRenderObject developer_patch.dart:65 :72 飞镖。developer.registerExtension ext.flutter.inspector.getSelectedWidget developer_patch.dart:65:72 dart.developer.registerExtension ext.flutter.inspector.getSelectedSummaryWidget developer_patch.dart:65:72 dart.developer.registerExtension ext.flutter.inspector.isWidgetCreationTracked developer_patch。 dart:65:72 dart.developer.registerExtension ext.flutter.inspector.screenshot developer_patch.dart:65:72 dart.developer.postEvent Flutter.FrameworkInitialization {} developer_patch.dart:98:16flutter.inspector.screenshot developer_patch.dart:65:72 dart.developer.postEvent Flutter.FrameworkInitialization {} developer_patch.dart:98:16flutter.inspector.screenshot developer_patch.dart:65:72 dart.developer.postEvent Flutter.FrameworkInitialization {} developer_patch.dart:98:16
它在调用super()
以下代码时崩溃(dart_sdk.js,第 6327 行)
dart.DartError = class DartError extends Error {
constructor(error) {
super();
if (error == null) error = new core.NullThrownError.new();
this[dart._thrownValue] = error;
if (error != null && typeof error == "object" && error[dart._jsError] == null) {
error[dart._jsError] = this;
}
}
get message() {
return dart.toString(this[dart._thrownValue]);
}
};
这是调用堆栈
console.trace() 调试器评估代码:1:9
调试器评估代码:1
DartError dart_sdk.js:6327
throw_errors.dart:216
decodeEnvelope message_codecs.dart:569
_invokeMethod platform_channel.dart:156
onValue async_patch.dart:47
runUnary zone。 dart:1439
handleValue future_impl.dart:141
handleValueCallback future_impl.dart:686
_propagateToListeners future_impl.dart:715
_completeWithValue future_impl.dart:526
future_impl.dart:560
_microtaskLoop schedule_microtask.dart:43
_startMicrotaskLoop schedule_microtask.dart:52
_scheduleImmediate168dart:
问题:对此我能做些什么吗?我没有看到对“我的”代码的任何引用(因为它是异步的),也没有任何方法可以找到它是否是“我的代码”中的问题。它在Android上运行得很好。
[更新]我也尝试了最简单的静态地图,尽管只有一个标记,并得到了相同的结果。
我是否必须接受 Flutter for web 处于 Beta 频道,并等待几个月看看它是否稳定?或者,有人有基于浏览器的 Flutter Google Maps 演示吗?
解决方案
官方 Flutter 谷歌地图插件目前不支持网络,它仍在开发者预览中
使用此插件可与网络上的谷歌地图一起使用。
https://pub.dev/packages/flutter_google_maps
不要忘记在正文中的 index.html 中添加由插件自述文件提供的脚本标签。添加它们,一切正常。
希望这会帮助你。
推荐阅读
- android - 任务 ':expo-constants:compileDebugJavaWithJavac' 执行失败。(反应原生)
- angular - 更改 Angular 7 中的 webpack 配置并更改 CKEditor 5 的 SVG 设置以加载自定义插件
- c++ - 是否可以仅通过在 C++ 中存储分配的指针地址来分析内存?
- spring - 无法使用 Spring Security 加载静态资源
- c - 使用 void* 分配结构
- reactjs - 如何扩展 React 功能组件 Prop 类型?
- sql-server - SQL Server 2017 Management Studio:创建程序集错误
- php - preg_match 函数不适用于 if 语句?
- kubernetes - 创建集群所需的资源量 - Openshift v4.2
- android - 图像在 ImageView 中按大小扭曲