我正在尝试开发一个Flutter应用程序。这种动荡正在为纸牌游戏创建团队。团队创建后,积分可以计入,因此您不必考虑每个人有多少积分。
但是我有一个例外,我知道例外在哪里及其含义,但是我不知道如何解决该问题。我希望你们中的一些人能帮助我。
这是引发错误的代码:
OR
这是错误消息:
import 'package:flutter/material.dart';
class Punktezaehler extends StatefulWidget{
final List<String> spieler_namen;
Punktezaehler(this.spieler_namen);
@override
State<StatefulWidget> createState() => new _Punktezaehler(this.spieler_namen);
}
class _Punktezaehler extends State<Punktezaehler>{
final List<String> spieler_namen;
_Punktezaehler(this.spieler_namen);
List<int> punkteanzahl_teamEins;
List<int> punkteanzahl_teamZwei;
@override
Widget build(BuildContext context) {
var spieler1 = spieler_namen[0].substring(0,3);
var spieler2 = spieler_namen[1].substring(0,3);
var spieler3 = spieler_namen[2].substring(0,3);
var spieler4 = spieler_namen[3].substring(0,3);
return new Scaffold(
appBar: new AppBar(
automaticallyImplyLeading: false,
title: new Text("$spieler1 & $spieler2 vs" +" $spieler3 & $spieler4"),
actions: <Widget>[
],
),
body: Container(
child: new Row(
children: <Widget>[
new Column(
children: <Widget>[
new IconButton(
icon: Icon(Icons.exposure_plus_2),
onPressed: () => punkte_hinzuzaehlen(1, 2)
)
],
),
new Column(
children: <Widget>[
//new FlatButton(onPressed: () => print(punkteanzahl_teamEins.length), child: new Text("Punkte")),
ListView.builder(
itemCount: punkteanzahl_teamEins.length, //--> Error is thrown here
itemBuilder: (context, index){
return Text(punkteanzahl_teamEins[index].toString());
}
),
new Row()
],
),
new Column(
children: <Widget>[
new IconButton(
icon: Icon(Icons.exposure_plus_2),
onPressed: () => punkte_hinzuzaehlen(2, 2)
)],
)
],
)
),
);
}
void punkte_hinzuzaehlen(int team, int nummer){
if (team == 1){
//Team 1 bekommt die Punkte
print("Team 1 gets points");
}
else if(team == 2){
//Team 2 bekommt die Punkte
print("Team 2 gets points");
}
}
}
修复后,我又遇到了一个错误:
══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
I/flutter (26028): The following NoSuchMethodError was thrown while handling a gesture:
I/flutter (26028): The getter 'length' was called on null.
I/flutter (26028): Receiver: null
I/flutter (26028): Tried calling: length
答案 0 :(得分:3)
punkteanzahl_teamEins 。但未初始化。因此它会引发空错误。
您应该为punkteanzahl_teamEins
分配值,
List<int> punkteanzahl_teamEins = [1,4,5,7];
或根据需要传递来自父级的数据。
答案 1 :(得分:0)
我们花了很多时间解决问题,最后我们得到了一个解决方案:请检查您 pubspec.yaml 并删除多余的“-”(如果有资产文件),还请遵循该结构比如间距等等。
我们必须确保仅在pubspec.yaml文件中存在该问题
答案 2 :(得分:0)
第一个检查spieler_namen是否为null。如果为null,则使用下面的代码,希望这可以解决您的问题.....
if(spieler_namen == null){
new Container(width: 10.0,height: 10.0,);
}else{
your requirement .......
}
答案 3 :(得分:0)
在我们的情况下,调用Web服务后Internet连接关闭时,我们收到此错误。
答案 4 :(得分:0)
我通过在pubspec.yaml中重新访问此部分来解决此问题
# To add assets to your application, add an assets section, like this:
# assets:
# - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg
确保您的空格,连字符和文件名正确。 注意:您无需列出每个图像文件;相反,您可以只列出他们的目录:
assets:
- images/
答案 5 :(得分:0)
当我们尝试在null-objects
上发送或调用值,方法和属性时会发生这种情况
对我来说,当我尝试在http请求flutter中自动发送一个null
值并将其自动转换为字符串时,就会出现此问题。这就是为什么会给出错误
为避免这种情况,请先检查它是否不是null
,然后使用它,这是操作方法
Dart提供了?.
和??
运算符用于空值检查
使用??
var result = anyValue ?? "";
使用?.
itemCount: punkteanzahl_teamEins?.length,
// To use more ways
1) final value = myObject?.someProperty.value;
2) var result = myObject?.someProperty.value ?? ""
答案 6 :(得分:0)
初始化您的列表,然后运行热重启(按 R)。
它工作正常。