Firebase Auth 上的 Flutter 编译错误:“必须返回非空值,因为返回类型‘Never’不允许为 null。”

Rod*_*lle 6 firebase flutter

我正在使用 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.
Run Code Online (Sandbox Code Playgroud)

小智 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 升级给我带来了一些问题。然后我将最新版本的依赖项添加到我的 pubspec (firebase_storage_10.2.0) 中。在此阶段,运行应用程序可能会抛出有关不支持的compileSDKVersion 等错误,并要求您升级。为此,请进入您的应用程序级别 build.gradle 文件

(“项目”\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
}
Run Code Online (Sandbox Code Playgroud)

当您现在运行该应用程序时,它将检查您刚刚编辑的 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'

现在你可以走了。再次运行该应用程序,可能需要比平时更长的时间,但它应该可以正常工作。或者至少对我来说效果很好。


Ama*_*dar 5

我也有同样的错误。尝试升级dart版本或使用较低版本的firebase_auth。

  firebase_auth: 2.0.0
Run Code Online (Sandbox Code Playgroud)

firebase_auth:2.0.0 对我有用。


Muh*_*Ali 5

整体完整的解决方案。

\n

解决方案:

\n

步骤1:

\n

该错误的解决办法是升级到新的flutter版本。

\n

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

\n
flutter upgrade\n
Run Code Online (Sandbox Code Playgroud)\n

然后升级到新的 flutter 版本后。打开您的项目并在手机上测试它。

\n

如果升级 kotlin 版本也显示错误,则:\n第 2 步:

\n

由于我们已经升级到新版本的 flutter,因此我们还必须在 build.gradle 中升级一些东西。

\n

->转到 android/build.gradle

\n

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

\n

例如,

\n

在我的旧版本中,我有\xc2\xa0 ext.kotlin_version = \'1.3.50\',现在我将其更改为新的\xc2\xa0 ext.kotlin_version = \'1.6.10\'\n 请在此处查看示例在截图图像中

\n

现在今天日期是: 01/3/2022

\n

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

\n

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

\n

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

\n

这是用于理解的屏幕截图

\n

步骤:3

\n

->转到 android/app/build.gradle

\n

->将 minSdkVersion 更改为 19

\n

->添加 multiDexEnabled true

\n

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

\n

现在您可以在手机上运行并测试该应用程序。它将 100% 工作。

\n