android 如何在flutter/dart中捕获platformException?

yruzcnhs  于 2022-12-02  发布在  Android
关注(0)|答案(6)|浏览(143)

我越来越
系统发生了异常。系统发生了异常。12501:,空值))
每当我试图取消登录与谷歌弹出在我的应用程序。
重现步骤:
在应用程序中,当按下谷歌登录按钮时,谷歌登录页面会出现所有的Gmail帐户,供您选择登录或注册。
触摸弹出窗口的外部区域以取消登录,然后关闭弹出窗口。
之后,代码中会出现平台异常:
系统发生了异常。系统发生了异常。12501:,空值))
现在登录按钮不起作用,应用程序崩溃,
已尝试try/catch -不起作用

mqxuamgl

mqxuamgl1#

try {
  final res = await _auth.signInWithEmailAndPassword(
      email: email, password: password);
  if (res != null) loggedUser = res.user;
} on PlatformException catch (err) {
  // Handle err
} catch (err) {
  // other types of Exceptions
}
pokxtpni

pokxtpni2#

我最近也遇到了这个错误,我发现在调试模式下(当您在VSCode中单击Run->Start Debugging按钮时)没有调用.catchError()回调。
然而,当您键入flutter run -d时,.catchError()方法会被回调,因为它不在调试模式下。
要获取您喜欢的模拟器代码,请将以下代码行粘贴到终端中:

instruments -s devices

如果不起作用,您还可以尝试粘贴以下内容:

xcrun simctl list

.catchError()方法将被调用,与以前不同,其中的代码将按预期执行!
此外,应用程序不会再因PlatformException()而崩溃,相反,您将获得如下所示的日志:

[VERBOSE-2:ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The getter 'uid' was called on null.
Receiver: null

我一直面临着这个问题,在谷歌登录太,其中的.catchError()没有被调用!
总之,如果你在处理Firebase身份验证中的错误时遇到了一些错误,你应该首先尝试通过终端运行。谢谢,我希望这对你有帮助,相信我,它应该对你有用!

qoefvg9y

qoefvg9y3#

显然,这个问题还没有得到解决,如果您使用flutter run -d从终端运行flutter应用程序,也不会发生这个问题。不要担心您的应用程序的发布版本,它不会在发布版本中崩溃或冻结。

j13ufse2

j13ufse24#

平台异常错误:抛出以指示平台插件中的平台交互失败。(null safety)
我也遇到过类似的问题。添加服务导入解决了这个问题。Check the docs for more information.

import 'package:flutter/services.dart';
g9icjywg

g9icjywg5#

这是捕获平台异常的方法

try {
  //
} on PlatformException catch (e) {
  if (e.code == '???') {
     // 
  }
} catch (e) {
  //
}
czfnxgou

czfnxgou6#

我有同样的问题与登录与谷歌。用户取消操作或互联网问题。我已经搜索了很多,并尝试了很多异常捕捉解决方案。但在最后,我发现一些有用的,并决定在这里分享它。

*只需尝试 * 在不使用调试模式的情况下运行项目

相关问题