简体   繁体   English

如何解决这个问题 [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] 未处理的异常:NoSuchMethodError:getter 'phone' 在 null 上被调用。 错误?

[英]How to fix this [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: NoSuchMethodError: The getter 'phone' was called on null. error?

Error:错误:

E/flutter (22800): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: NoSuchMethodError: The getter 'phone' was called on null. E/flutter (22800): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] 未处理的异常:NoSuchMethodError:getter 'phone' 被调用为 null。 E/flutter (22800): Receiver: null E/flutter (22800): Tried calling: phone E/flutter (22800): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5) E/flutter (22800): #1 _OtpscreenState.verifyPhone (package:userauth/Otpscreen.dart:172:35) E/flutter (22800): #2 _OtpscreenState.initState (package:userauth/Otpscreen.dart:209:5) E/flutter (22800): #3 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4711:57) E/flutter (22800): #4 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4548:5) E/flutter (22800): #5 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14) E/flutter (22800): #6 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:18) E/flutter (22800): #7 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6083:14) E/flutter (22800): #8 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14) E/flutter (22800): #9 Element.updateChild (package:flutter/src/ E/flutter (22800): Receiver: null E/flutter (22800): 尝试呼叫: phone E/flutter (22800): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5) E/ flutter (22800): #1 _OtpscreenState.verifyPhone (package:userauth/Otpscreen.dart:172:35) E/flutter (22800): #2 _OtpscreenState.initState (package:userauth/Otpscreen.dart:209:5) E/ flutter (22800): #3 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4711:57) E/flutter (22800): #4 ComponentElement.mount (package:flutter/src/widgets/framework. dart:4548:5) E/flutter (22800): #5 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14) E/flutter (22800): #6 Element.updateChild (package: flutter/src/widgets/framework.dart:3363:18) E/flutter (22800): #7 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6083:14) E/flutter (22800): #8 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14) E/flutter (22800): #9 Element.updateChild (package:flutter/src/ widgets/framework.dart:3363:18) E/flutter (22800): #10 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16) E/flutter (22800): #11 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5) E/flutter (22800): #12 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4553:5) E/flutter (22800): #13 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4548:5) E/flutter (22800): #14 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14) E/flutter (22800): #15 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:18) E/flutter (22800): #16 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6083:14) E/flutter (22800): #17 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14) E/flutter (22800): #18 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:18) E/flutter (22800): #19 SingleChildRenderObjectElement.mount (packa widgets/framework.dart:3363:18) E/flutter (22800): #10 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16) E/flutter (22800): #11 元素。重建 (package:flutter/src/widgets/framework.dart:4267:5) E/flutter (22800): #12 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4553:5) E/flutter (22800): #13 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4548:5) E/flutter (22800): #14 Element.inflateWidget (package:flutter/src/widgets/framework.dart :3611:14) E/flutter (22800): #15 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:18) E/flutter (22800): #16 SingleChildRenderObjectElement.mount (package:flutter /src/widgets/framework.dart:6083:14) E/flutter (22800): #17 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14) E/flutter (22800): # 18 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:18) E/flutter (22800): #19 SingleChildRenderObjectElement.mount (packa ge:flutter/src/widgets/framework.dart:6083:14) E/flutter (22800): #20 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14) E/flutter (22800): #21 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:18) E/flutter (22800): #22 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16) E/flutter (22800): #23 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11) E/flutter (22800): #24 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5) E/flutter (22800): #25 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4553:5) E/flutter (22800): #26 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4737:11) E/flutter (22800): #27 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4548:5) E/flutter (22800): #28 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14) E/flutter (22800): #29 Element.updateChild (packa ge:flutter/src/widgets/framework.dart:6083:14) E/flutter (22800): #20 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14) E/flutter (22800) ): #21 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:18) E/flutter (22800): #22 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599 :16) E/flutter (22800): #23 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11) E/flutter (22800): #24 Element.rebuild (package:flutter/src /widgets/framework.dart:4267:5) E/flutter (22800): #25 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4553:5) E/flutter (22800): #26 StatefulElement ._firstBuild (package:flutter/src/widgets/framework.dart:4737:11) E/flutter (22800): #27 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4548:5) E/ flutter (22800): #28 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14) E/flutter (22800): #29 Element.updateChild (packa ge:flutter/src/widgets/framework.dart:3363:18) E/flutter (22800): #30 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6083:14) E/flutter (22800): #31 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14) E/flutter (22800): #32 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:18) E/flutter (22800): #33 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6083:14) E/flutter (22800): #34 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14) E/flutter (22800): #35 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:18) E/flutter (22800): #36 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16) E/flutter (22800): #37 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11) E/flutter (22800): #38 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5) E/flutter (22800): #39 ComponentE ge:flutter/src/widgets/framework.dart:3363:18) E/flutter (22800): #30 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6083:14) E/flutter (22800) ): #31 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14) E/flutter (22800): #32 Element.updateChild (package:flutter/src/widgets/framework.dart:3363 :18) E/flutter (22800): #33 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6083:14) E/flutter (22800): #34 Element.inflateWidget (package:flutter/src /widgets/framework.dart:3611:14) E/flutter (22800): #35 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:18) E/flutter (22800): #36 ComponentElement .performRebuild (package:flutter/src/widgets/framework.dart:4599:16) E/flutter (22800): #37 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11) E/ flutter (22800): #38 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5) E/flutter (22800): #39 ComponentE lement._firstBuild (package:flutter/src/widgets/framework.dart:4553:5) E/flutter (22800): #40 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4737:11) E/flutter (22800): #41 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4548:5) E/flutter (22800): #42 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14) E/flutter (22800): #43 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:18) E/flutter (22800): #44 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16) E/flutter (22800): #45 Element.rebuild (package:flutter/src/widgets/framework lement._firstBuild (package:flutter/src/widgets/framework.dart:4553:5) E/flutter (22800): #40 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4737:11) E /flutter (22800): #41 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4548:5) E/flutter (22800): #42 Element.inflateWidget (package:flutter/src/widgets/framework .dart:3611:14) E/flutter (22800): #43 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:18) E/flutter (22800): #44 ComponentElement.performRebuild (package :flutter/src/widgets/framework.dart:4599:16) E/flutter (22800): #45 Element.rebuild (package:flutter/src/widgets/framework

Here is my code:这是我的代码:

    import 'package:flutter/material.dart';
import 'package:pinput/pin_put/pin_put.dart';
import 'package:pinput/pin_put/pin_put_state.dart';
import 'package:firebase_auth/firebase_auth.dart';

import 'package:firebase_core/firebase_core.dart';
import 'package:userauth/Profilescreen.dart';

class Otpscreen extends StatefulWidget {
  String phone;

  Otpscreen(this.phone);

  @override
  _OtpscreenState createState() => _OtpscreenState();
}

class _OtpscreenState extends State<Otpscreen> {


  final GlobalKey<ScaffoldState> _scaffoldkey = GlobalKey<ScaffoldState>();

  late String otp;
  late String _verificationCode;

  final TextEditingController _pinPutController = TextEditingController();
  final FocusNode _pinPutFocusNode = FocusNode();
  final BoxDecoration pinPutDecoration = BoxDecoration(
    color: Colors.blue,
    borderRadius: BorderRadius.circular(10.0),
    border: Border.all(
      color: const Color.fromRGBO(126, 203, 224, 1),
    ),
  );

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Column(
          children: [
            Expanded(
              child: Padding(
                padding: const EdgeInsets.only(top: 10, bottom: 10),
                child: Column(
                  children: [
                    Padding(
                      padding: const EdgeInsets.only(right: 310),
                      child: RawMaterialButton(
                        onPressed: () {
                          Navigator.pop(context, "phone");
                        },
                        child: Icon(Icons.arrow_back),
                      ),
                    ),
                    SizedBox(height: 40),
                    Text(
                      "Verify Phone",
                      style: TextStyle(
                          fontWeight: FontWeight.bold,
                          fontSize: 20,
                          color: Colors.black),
                    ),
                    SizedBox(height: 10),
                    Text(
                      "code is sent to ${widget.phone}",
                      style: TextStyle(
                          fontSize: 14,
                          fontWeight: FontWeight.w500,
                          color: Colors.grey),
                    ),
                    Padding(
                      padding: const EdgeInsets.all(30.0),
                      child: PinPut(
                        fieldsCount: 6,
                        textStyle: const TextStyle(
                            fontSize: 25.0, color: Colors.white),
                        eachFieldWidth: 40.0,
                        eachFieldHeight: 55.0,
                        focusNode: _pinPutFocusNode,
                        controller: _pinPutController,
                        submittedFieldDecoration: pinPutDecoration,
                        selectedFieldDecoration: pinPutDecoration,
                        followingFieldDecoration: pinPutDecoration,
                        pinAnimationType: PinAnimationType.fade,
                        onSubmit: (pin) async {
                          try {
                            await FirebaseAuth.instance
                                .signInWithCredential(
                                    PhoneAuthProvider.credential(
                                        verificationId: _verificationCode,
                                        smsCode: otp))
                                .then((value) async {
                              if (value.user != null) {
                                Navigator.pushAndRemoveUntil(
                                    context,
                                    MaterialPageRoute(
                                        builder: (context) => Profilescreen()),
                                    (route) => false);
                              }
                            });
                          } catch (e) {
                            FocusScope.of(context).unfocus();
                            _scaffoldkey.currentState!.showSnackBar(
                                SnackBar(content: Text("invalid OTP")));
                          }
                        },
                      ),
                    ),
                    SizedBox(
                      height: 20,
                    ),
                    Center(
                      child: Padding(
                        padding: const EdgeInsets.only(
                            left: 20, right: 20, top: 0, bottom: 10),
                        child: Row(
                          mainAxisAlignment: MainAxisAlignment.center,
                          children: [
                            Center(
                              child: Text(
                                "Didn't receive an code?",
                              ),
                            ),
                            GestureDetector(
                              onTap: () {
                                Navigator.pushNamed(context, "phone");
                              },
                              child: Center(
                                child: Text(
                                  "Request Again",
                                  style: TextStyle(
                                    color: Colors.black,
                                    fontWeight: FontWeight.bold,
                                    fontSize: 16,
                                  ),
                                ),
                              ),
                            ),
                          ],
                        ),
                      ),
                    ),
                    SizedBox(height: 20),
                    RawMaterialButton(
                      onPressed: () {
                        Navigator.pushNamed(context, "profile");
                      },
                      fillColor: Colors.blue,
                      child: Padding(
                        padding: const EdgeInsets.fromLTRB(50, 15, 50, 15),
                        child: Text(
                          "VERIFY AND CONTINUE",
                          style: TextStyle(
                              fontSize: 16, fontWeight: FontWeight.bold),
                        ),
                      ),
                    ),
                  ],
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }

  verifyPhone() async {
    var widget;
    await FirebaseAuth.instance.verifyPhoneNumber(
        phoneNumber: "+91${widget.phone}",
        verificationCompleted: (PhoneAuthCredential credential) async {
          await FirebaseAuth.instance
              .signInWithCredential(credential)
              .then((value) async {
            if (value.user != null) {
              Navigator.pushAndRemoveUntil(
                  context,
                  MaterialPageRoute(builder: (context) => Profilescreen()),
                  (route) => false);
            }
          });
        },
        verificationFailed: (FirebaseAuthException e) {
          print(e.message);
        },
         codeSent: (String verificationID, int? resendToken) {
          setState(() {
            _verificationCode = verificationID;
          });
        },


        codeAutoRetrievalTimeout: (String verificationID) {
          setState(() {
            var verificationCode = verificationID;

          });
          },
        timeout: Duration(seconds: 60));

  }

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    verifyPhone();
  }
}

Thank you!谢谢!

In your verifyPhone() function, why are you declaring a "widget" variable??在您的 verifyPhone() 函数中,您为什么要声明“小部件”变量?

try removing that尝试删除它

verifyPhone() async {
var widget;  <<--- remove this from your code
await FirebaseAuth.instance.verifyPhoneNumber(
    phoneNumber: "+91${widget.phone}",
    verificationCompleted: (PhoneAuthCredential credential) async {
      await FirebaseAuth.instance
          .signInWithCredential(credential)
          .then((value) async {
        if (value.user != null) {
          Navigator.pushAndRemoveUntil(
              context,
              MaterialPageRoute(builder: (context) => Profilescreen()),
              (route) => false);
        }
      });
    },
    verificationFailed: (FirebaseAuthException e) {
      print(e.message);
    },
     codeSent: (String verificationID, int? resendToken) {
      setState(() {
        _verificationCode = verificationID;
      });
    },


    codeAutoRetrievalTimeout: (String verificationID) {
      setState(() {
        var verificationCode = verificationID;

      });
      },
    timeout: Duration(seconds: 60));

} }

You are trying to get widget.phone in this line您正在尝试在此行中获取 widget.phone

var widget;
    await FirebaseAuth.instance.verifyPhoneNumber(
        phoneNumber: "+91${widget.phone}", <-

But, instead of get phone passed as parameter to Otpscreen, the code is getting the phone variable, declared inside the function.但是,代码不是获取作为参数传递给 Otpscreen 的电话,而是获取在函数内部声明的电话变量。 As the variable is null, the return is a NoSuchMethodError.由于变量为空,返回的是 NoSuchMethodError。 Try to remove the var widget declaration.尝试删除var widget声明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 错误:flutter/lib/ui/ui_dart_state.cc(177) 未处理的异常:NoSuchMethodError:在 null 上调用了方法“插入” - ERROR:flutter/lib/ui/ui_dart_state.cc(177) Unhandled Exception: NoSuchMethodError: The method 'insert' was called on null 错误:flutter/lib/ui/ui_dart_state.cc(209) 未处理的异常:在 dispose() 之后调用 setState() - ERROR:flutter/lib/ui/ui_dart_state.cc(209) Unhandled Exception: setState() called after dispose() 错误:flutter/lib/ui/ui_dart_state.cc(148) 未处理的异常 - ERROR:flutter/lib/ui/ui_dart_state.cc(148) Unhandled Exception 错误:flutter/lib/ui/ui_dart_state.cc(166),未处理的异常:无效参数:“GoogleSignInAccount”实例 - ERROR:flutter/lib/ui/ui_dart_state.cc(166), Unhandled Exception: Invalid argument: Instance of 'GoogleSignInAccount' 错误:flutter/lib/ui/ui_dart_state.cc(166) 未处理的异常:类型“字符串”不是“索引”类型“int”的子类型 - ERROR:flutter/lib/ui/ui_dart_state.cc(166) Unhandled Exception: type 'String' is not a subtype of type 'int' of 'index' 无法将车辆信息保存到 firebase [VERBOSE-2:ui_dart_state.cc(186)] 未处理异常:无效参数:“TextEditingController”实例 - Can't save vehicle info to firebase [VERBOSE-2:ui_dart_state.cc(186)] Unhandled Exception: Invalid argument: Instance of 'TextEditingController' 未处理的异常:NoSuchMethodError:在 null 上调用了方法“addAdvogado”。 关于颤振 - Unhandled Exception: NoSuchMethodError: The method 'addAdvogado' was called on null. On Flutter Firebase/Flutter:未处理的异常:NoSuchMethodError:在 null 上调用了 getter 'isNotEmpty' - Firebase/Flutter : Unhandled Exception: NoSuchMethodError: The getter 'isNotEmpty' was called on null Flutter“NoSuchMethodError(NoSuchMethodError:在 null 上调用了方法‘where’。 - Flutter "NoSuchMethodError (NoSuchMethodError: The method 'where' was called on null." Error 未处理的异常:NoSuchMethodError:在 null 上调用了 getter 'isEmailVerified' - Unhandled Exception: NoSuchMethodError: The getter 'isEmailVerified' was called on null
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM