我正在使用 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.
该错误消息是从 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 文件
(“项目”ndroid pp uild.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') 更改为最新版本,可以在 Here 找到。目前最新版本为1.6.10 所以这行代码现在读作
ext.kotlin_version = '1.6.10'
现在你可以走了。再次运行该应用程序,可能需要比平时更长的时间,但它应该可以正常工作。 或者至少对我来说效果很好。
我也有同样的错误。 尝试升级dart版本或使用较低版本的firebase_auth。
firebase_auth: 2.0.0
firebase_auth:2.0.0 对我有用。
整体完整的解决方案。
解决方案:
第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'
现在今天日期是:01/3/2022
未来:如果您正在阅读此评论,那么版本号 ext.kotlin_version = '1.6.10' 可能会有所不同。
因此,要了解最新的版本号,请访问此网站:
https://kotlinlang.org/docs/gradle.html#plugin-and-versions
步骤:3
-> 转到 android/app/build.gradle
-> 将 minSdkVersion 更改为 19
-> 添加 multiDexEnabled true
现在您可以在手机上运行并测试该应用程序。它将发挥 100% 的作用。
错误:必须返回非空值,因为返回类型“Never”不允许为空。我收到这个错误,我用这个命令解决了这个问题
**dart pub cache clean
dart pub get**