flutter - 带有 Flutter_Map 的简单 Flutter 应用程序不起作用
问题描述
我正在尝试在flutter上运行插件flutter_map。代码如下所示:
import 'package:flutter_map/flutter_map.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new FlutterMap(
layers: [
new TileLayerOptions(urlTemplate:'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png')
],
);
}
}
但是,在我的设备上运行代码后,我收到以下错误:
Performing hot reload...
Syncing files to device SM J510FN...
I/flutter (14355): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (14355): The following NoSuchMethodError was thrown building LayoutBuilder:
I/flutter (14355): The getter 'plugins' was called on null.
I/flutter (14355): Receiver: null
I/flutter (14355): Tried calling: plugins
I/flutter (14355):
I/flutter (14355): When the exception was thrown, this was the stack:
I/flutter (14355): #0 Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:50:5)
I/flutter (14355): #1 FlutterMapState.build.<anonymous closure>.<anonymous closure> (package:flutter_map/src/map/flutter_map_state.dart:53:62)
I/flutter (14355): #2 MappedListIterable.elementAt (dart:_internal/iterable.dart:414:29)
I/flutter (14355): #3 ListIterable.toList (dart:_internal/iterable.dart:219:19)
I/flutter (14355): #4 FlutterMapState.build.<anonymous closure> (package:flutter_map/src/map/flutter_map_state.dart:54:12)
I/flutter (14355): #5 _LayoutBuilderElement._layout.<anonymous closure> (package:flutter/src/widgets/layout_builder.dart:111:26)
I/flutter (14355): #6 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2253:19)
I/flutter (14355): #7 _LayoutBuilderElement._layout (package:flutter/src/widgets/layout_builder.dart:107:11)
I/flutter (14355): #8 RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:1728:58)
I/flutter (14355): #9 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:797:15)
I/flutter (14355): #10 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1728:13)
I/flutter (14355): #11 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:205:5)
I/flutter (14355): #12 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (14355): #13 RenderView.performLayout (package:flutter/src/rendering/view.dart:151:13)
I/flutter (14355): #14 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1507:7)
I/flutter (14355): #15 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:766:18)
I/flutter (14355): #16 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:329:19)
I/flutter (14355): #17 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:701:13)
I/flutter (14355): #18 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:268:5)
I/flutter (14355): #19 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:988:15)
I/flutter (14355): #20 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:928:9)
I/flutter (14355): #21 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:749:7)
I/flutter (14355): #23 _Timer._runTimers (dart:isolate/runtime/libtimer_impl.dart:382:19)
I/flutter (14355): #24 _Timer._handleMessage (dart:isolate/runtime/libtimer_impl.dart:416:5)
I/flutter (14355): #25 _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
I/flutter (14355): (elided one frame from package dart:async)
I/flutter (14355): ════════════════════════════════════════════════════════════════════════════════════════════════════
Reloaded 206 of 637 libraries in 7,394ms.
我究竟做错了什么?请注意,我是 Flutter 新手,这是我在 Flutter 主页提供的教程之后的第一次试用。
解决方案
首先确保 pubspec.yaml 具有:
dependencies:
flutter:
sdk: flutter
flutter_map: ^0.8.1
...并且您已经在 Android Studio 中运行了 GET PACKAGES (我认为这就是您在那里使用的)
然后,尝试使用 ESRI 地图,例如:
Widget build(BuildContext context) {
return new FlutterMap(
options: new MapOptions(
center: new LatLng(40.0, -120.0),
zoom: 8.0,
),
layers: [
TileLayerOptions(
urlTemplate:
'https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}',
subdomains: ['a', 'b', 'c'],
tileProvider: CachedNetworkTileProvider(),
),
],
);
}
此外,这是与传单一起使用的地图的绝佳资源:
推荐阅读
- r - 使用 ffdfdply() 汇总大量数据
- r - 在图表中编辑。相关函数 R
- php - 使 HTML 消息消失
- cuda - CUDA 中的分段错误
- single-sign-on - Keycloak 无效的重定向 URL - grafana
- react-native - 如何根据 Tab Navigator 更改 Drawer Navigator 的 headerStyle
- nuxt.js - 如何在 nuxt js 中从strapi 农场/解析降价帖子
- python - 如何在 python2 中递归使用 glob.glob() 和 glob.iglob()
- typescript - Prisma:我怎样才能让所有孩子都处于某种状态?
- javascript - 对象在浏览器上的最大尺寸是多少?(铬合金)