Flutter编译错误:Firebase身份验证问题:“必须返回非空值,因为返回类型“Never”不允许为空。”

6

我正在使用Flutter Fire,并已完成控制台配置,但每次尝试使用firebase_auth导入运行代码时都会出现此错误。

/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_auth_platform_interface-6.2.0/lib/src/method_channel/utils/exception.dart:12:7: Error: A non-null value must be returned since the return type 'Never' doesn't allow null.

你是希望我们能感知代码吗?你需要分享代码以便查看问题所在。 - Demir
Demir,这就是重点。我没有任何代码,只有基本的内容,如下所示:WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); - Rodrigo Valle
你的问题陈述中提到了你“尝试运行代码” - 无论那段代码是什么,都需要放在问题描述中而不是注释中。请花点时间阅读如何提出一个好问题如何创建一个最小可重现示例。你还应该添加断点并逐步执行代码,直到它崩溃 - 然后在你的问题中指出哪一行导致了崩溃。 - Jay
请提供足够的代码,以便他人更好地理解或重现问题。 - Community
3个回答

10

这个错误信息是从dart 2.16开始添加的,即从flutter 2.10开始,因此主要解决方案将是升级您的flutter版本,这也将升级dart版本。

所以我最近在使用firebase_storage时遇到了这个问题

我解决问题的方法是... (我当时使用的是flutter 2.5和dart 2.14)。

升级flutter和dart版本:进入终端,运行 flutter upgrade 或者在我的情况下,flutter upgrade --force,因为flutter upgrade给了我一些问题。 然后将依赖项的最新版本添加到我的pubspec中(firebase_storage_10.2.0) 到这个阶段,运行应用程序可能会抛出有关不支持的compileSDKVersion或类似的错误,并要求您进行升级。 对于这个,进入您的应用程序级build.gradle文件

("project"\android\app\build.gradle),

并在android下,将compileSDKVersion从当前值更改为flutter要求您更改的值。在我的情况下,它是从30更改为31

android{
       //change compile sdk version to 31 (in my case. flutter will tell you which version you should set to)
       compileSdkVersion 31
}

现在运行应用程序时,它将检查您刚刚编辑的Android SDK软件包(31)的许可证,并应自动接受和安装所有必要内容。 然后Flutter运行可能会再次失败,并显示不兼容的kotlin版本错误提示,需要更新。 要更新kotlin版本,请转到项目级别的build.gradle(“project”/android/build.gradle),并在此处更改kotlin版本 (ext.kotlin_version ='1.3.5') 到最新版,可以在这里找到。截至目前,最新版本为1.6.10 现在,该代码行应如下所示:

ext.kotlin_version = '1.6.10'

现在你可以开始运行应用程序了。再次运行应用程序可能比平常花费更长的时间,但应该可以正常工作。 或者至少对我而言是这样的。


5

我也遇到了同样的错误。 尝试更新Dart版本或使用较低版本的firebase_auth。

  firebase_auth: 2.0.0

firebase_auth: 2.0.0 对我有效。


5

整体完整的解决方案。

解决方案:

步骤1:

解决此错误的方法是升级到新的Flutter版本。

打开命令提示符并运行此命令。

flutter upgrade

升级到新的Flutter版本后,打开您的项目并在手机上进行测试。

如果还显示需要升级Kotlin版本的错误,则执行以下步骤2:

由于我们已经升级到Flutter的新版本,因此在build.gradle中也必须升级一些内容。

-> 进入android/build.gradle

-> 更改为ext.kotlin_version = '1.6.10'

例如,在我的旧版本中,我设置了ext.kotlin_version ='1.3.50',现在我将其更改为新的ext.kotlin_version = '1.6.10' 请在屏幕截图中查看示例

现在的日期是:2022年3月1日

未来: 如果您正在阅读此评论,则版本号ext.kotlin_version ='1.6.10'可能会有所不同。

因此,要获得最新的新版本号,请访问此网站:

https://kotlinlang.org/docs/gradle.html#plugin-and-versions

这是理解的截图。

步骤:3

-> 转到android/app/build.gradle

-> 将minSdkVersion更改为19

-> 添加multiDexEnabled true

例如, 在此处查看示例屏幕截图。

现在,您可以在手机上运行和测试应用程序。它将百分之百地工作。


非常棒的解释。非常感谢您。 - Rodrigo Valle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接