我在 Flutter Dart 代码中遇到以下错误:
The getter 'pi' was called on null. Receiver: null Tried calling: pi
我已尝试以下方法,但尚未解决问题:
pi
是否为空io
代替 pi
(导入 dart:io
没有帮助)pi
相关代码(带解释):
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'dart:math' as math;
// ...
class CustomTimerPainter extends CustomPainter {
// ...
@override
void paint(Canvas canvas, Size size) {
// ... existing code ...
// Problem likely lies here:
var math; // 'math' is never assigned a value
double progress = (1.0 - animation.value) * 2 * math.pi;
canvas.drawArc(Offset.zero & size, math.pi * 1.5,
-progress, false, paint);
}
}
问题说明:
我相信该错误是由
math
中的 CustomTimerPainter
变量引起的。它已声明但从未分配值,当您尝试使用 math.pi
时会导致空引用。
如何解决这个问题?
问题出在这一行
var math;
您定义了一个名为 math 的变量,但尚未将其分配给任何内容。由于 math 为 null,因此您会收到错误“在 null 上调用 getter 'pi'”。
您需要删除此行。
如果您这样做,您的代码现在就可以工作了
import 'dart:math' as math;
但是,数学前缀不是必需的,所以你也可以这样做
import 'dart:math;
并使用 pi,而不是 math.pi