flutter - Flutter:NoSuchMethodError 仅在 Android 上
问题描述
我正在尝试修复这个相当烦人的错误。我的应用程序有一个带有数据的 sliverList(从 json 网络资源中获取)。直到几天前,我都能够在 ios 和 android 中运行它。
现在我收到以下错误消息:
NoSuchMethodError: The getter 'length' was called on null.
Receiver: null
Tried calling: length
完整的错误信息在最后。
根据错误消息导航到相关文件的第 49 行时,我有以下代码:
new ZoopediaPage(widget.res),
在传递了 widget.res (已经从启动屏幕传递)之后。
本身在.length
这里使用:
@override
Widget build(BuildContext context) {
List response = widget.res;
int rnd = randomGen(0, widget.res.length);
在 ZoopediaPage 我有以下代码:
class ZoopediaPage extends StatefulWidget {
List res;
ZoopediaPage(this.res);
//const ZoopediaPage({Key key}) : super(key: key);
@override
_ZoopediaPageState createState() => _ZoopediaPageState();
}
使用时,print(widget.res)
我在控制台中有结果。
我的猜测是,由于某种原因,我的 android 设备在加载数据时出现了一些问题,但我不知道为什么它突然出现问题,为什么只在 android 上出现问题?
Future fetchData() async {
http.Response response;
response =
await http.get('https://apps.lechner.io/zoopedia/zoopedia_animals.json');
if (response.statusCode == 200) {
setState(() {
res = json.decode(response.body);
print('(DEBUG) Data Loaded successfully');
});
}
}
在android上也设置了互联网权限。
<uses-permission android:name="android.permission.INTERNET" />
此处包含完整的错误消息:
Performing hot reload... ⣻
Another exception was thrown: NoSuchMethodError: The getter 'length' was called
on null.
Reloaded 1 of 619 libraries in 214ms.
Performing hot reload... ⣻
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY
╞═══════════════════════════════════════════════════════════
The following NoSuchMethodError was thrown building ZoopediaPage(dirty, state:
_ZoopediaPageState#8c021):
The getter 'length' was called on null.
Receiver: null
Tried calling: length
The relevant error-causing widget was:
ZoopediaPage
file:///Users/lechnerio/dev/flutter/zoopedia/app/lib/ZoopediaApp.dart:49:15
When the exception was thrown, this was the stack:
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1 _ZoopediaPageState.build (package:zoopedia/pages/zoopedia.dart:38:39)
#2 StatefulElement.build
(package:flutter/src/widgets/framework.dart:4742:27)
#3 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4625:15)
#4 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4797:11)
#5 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#6 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4829:5)
#7 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#8 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6111:14)
#9 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#10 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6111:14)
#11 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#12 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#13 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#14 StatelessElement.update
(package:flutter/src/widgets/framework.dart:4706:5)
#15 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#16 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#17 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#18 ProxyElement.update (package:flutter/src/widgets/framework.dart:4973:5)
#19 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#20 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#21 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4797:11)
#22 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#23 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4829:5)
#24 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#25 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#26 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#27 StatelessElement.update
(package:flutter/src/widgets/framework.dart:4706:5)
#28 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#29 SliverMultiBoxAdaptorElement.updateChild
(package:flutter/src/widgets/sliver.dart:1229:37)
#30 SliverMultiBoxAdaptorElement.performRebuild.processElement
(package:flutter/src/widgets/sliver.dart:1145:35)
#31 Iterable.forEach (dart:core/iterable.dart:283:30)
#32 SliverMultiBoxAdaptorElement.performRebuild
(package:flutter/src/widgets/sliver.dart:1187:24)
#33 SliverMultiBoxAdaptorElement.update
(package:flutter/src/widgets/sliver.dart:1124:7)
#34 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#35 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6111:14)
#36 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#37 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#38 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#39 StatelessElement.update
(package:flutter/src/widgets/framework.dart:4706:5)
#40 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#41 RenderObjectElement.updateChildren
(package:flutter/src/widgets/framework.dart:5633:32)
#42 MultiChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6235:17)
#43 _ViewportElement.update
(package:flutter/src/widgets/viewport.dart:228:11)
#44 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#45 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6111:14)
#46 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#47 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6111:14)
#48 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#49 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6111:14)
#50 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#51 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6111:14)
#52 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#53 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#54 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4797:11)
#55 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#56 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4829:5)
#57 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#58 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6111:14)
#59 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#60 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#61 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#62 ProxyElement.update (package:flutter/src/widgets/framework.dart:4973:5)
#63 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#64 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6111:14)
#65 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#66 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6111:14)
#67 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#68 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6111:14)
#69 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#70 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6111:14)
#71 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#72 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#73 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#74 StatelessElement.update
(package:flutter/src/widgets/framework.dart:4706:5)
#75 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#76 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#77 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4797:11)
#78 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#79 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4829:5)
#80 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#81 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#82 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4797:11)
#83 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#84 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4829:5)
#85 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#86 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#87 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#88 StatelessElement.update
(package:flutter/src/widgets/framework.dart:4706:5)
#89 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#90 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#91 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4797:11)
#92 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#93 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4829:5)
#94 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#95 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#96 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#97 StatelessElement.update
(package:flutter/src/widgets/framework.dart:4706:5)
#98 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#99 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#100 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#101 ProxyElement.update (package:flutter/src/widgets/framework.dart:4973:5)
#102 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#103 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#104 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#105 ProxyElement.update (package:flutter/src/widgets/framework.dart:4973:5)
#106 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#107 RenderObjectElement.updateChildren
(package:flutter/src/widgets/framework.dart:5633:32)
#108 MultiChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6235:17)
#109 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#110 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#111 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4797:11)
#112 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#113 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4829:5)
#114 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#115 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#116 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#117 ProxyElement.update (package:flutter/src/widgets/framework.dart:4973:5)
#118 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#119 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#120 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4797:11)
#121 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#122 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4829:5)
#123 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#124 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6111:14)
#125 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#126 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#127 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#128 StatelessElement.update
(package:flutter/src/widgets/framework.dart:4706:5)
#129 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#130 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6111:14)
#131 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#132 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#133 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4797:11)
#134 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#135 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4829:5)
#136 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#137 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#138 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4797:11)
#139 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#140 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4829:5)
#141 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#142 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#143 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#144 ProxyElement.update (package:flutter/src/widgets/framework.dart:4973:5)
#145 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#146 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#147 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4797:11)
#148 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#149 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4829:5)
#150 Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
#151 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4650:16)
#152 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4797:11)
#153 Element.rebuild (package:flutter/src/widgets/framework.dart:4319:5)
#154 BuildOwner.buildScope
(package:flutter/src/widgets/framework.dart:2694:33)
#155 WidgetsBinding.drawFrame
(package:flutter/src/widgets/binding.dart:869:21)
#156 RendererBinding._handlePersistentFrameCallback
(package:flutter/src/rendering/binding.dart:319:5)
#157 SchedulerBinding._invokeFrameCallback
(package:flutter/src/scheduler/binding.dart:1144:15)
#158 SchedulerBinding.handleDrawFrame
(package:flutter/src/scheduler/binding.dart:1082:9)
#159 SchedulerBinding.scheduleWarmUpFrame.<anonymous closure>
(package:flutter/src/scheduler/binding.dart:865:7)
(elided 4 frames from class _RawReceivePortImpl, class _Timer, and
dart:async-patch)
════════════════════════════════════════════════════════════════════════════════
════════════════════
解决方案
该问题不是由任何代码引起的。
由于某种原因,android 模拟器没有互联网,我无法连接到它。
设置权限<uses-permission android:name="android.permission.INTERNET" />
没有帮助。
我创建了一个新的 android 设备,它开箱即用。
推荐阅读
- boost - Boost.Beast 的 websocket::stream::async_read 是否应该返回“短读”错误?
- visual-c++ - 在 MFC 中使用 TaskDialogIndirect 时出现异常
- android - 为什么 Android 存在特定于 Kotlin 的依赖项
- excel - 在 ABAP 中使用密码加密或保护文件
- bash - 通过忽略分隔符前后的空格来拆分逗号分隔的字符串,并将其存储在 shell 脚本中的数组中
- python - 从新窗口、按钮和脚本到主脚本/窗口 python+tkinter 的值
- amazon-web-services - 如何使用 AWS ALB 作为入口控制器将多个服务映射到单个入口?
- javascript - 如何在nodejs中使这个子进程调用同步?
- html - HTML CSS 问题 Get 和 started 之间的空间使 get 在第一行并在第二行开始
- r - 过滤模式上的行和列中的位置