【问题标题】:Firebase initialization error on flutter MissingPluginExceptionFlutter MissingPluginException 上的 Firebase 初始化错误
【发布时间】:2021-05-28 17:11:29
【问题描述】:

我正在开发一个应用程序我在这个应用程序中使用 firebase。我正在使用以下依赖项:

firebase_messaging: ^10.0.0
firebase_core: ^1.2.0
cloud_firestore: ^2.2.0
firebase_storage: ^8.1.0

我正在像这样初始化 firebase:

void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}

直到今天早上,整个代码都运行良好,但之后每次都出现此错误:

Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
√ Built build\app\outputs\flutter-apk\app-debug.apk.
Installing build\app\outputs\flutter-apk\app.apk...
Debug service listening on ws://127.0.0.1:53273/b_8_mVgWJY0=/ws
Syncing files to device sdk gphone x86...
I/flutter (15902): completed
E/flutter (15902): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled  Exception: MissingPluginException(No implementation found for method  Firebase#initializeCore on channel plugins.flutter.io/firebase_core)
E/flutter (15902): #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:156:7)
E/flutter (15902): <asynchronous suspension>
E/flutter (15902): #1      MethodChannel.invokeListMethod (package:flutter/src/services/platform_channel.dart:344:35)
E/flutter (15902): <asynchronous suspension>
E/flutter (15902): #2      MethodChannelFirebase._initializeCore (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:30:23)
E/flutter (15902): <asynchronous suspension>
E/flutter (15902): #3      MethodChannelFirebase.initializeApp (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:77:7)
E/flutter (15902): <asynchronous suspension>
E/flutter (15902): #4      Firebase.initializeApp (package:firebase_core/src/firebase.dart:41:31)
E/flutter (15902): <asynchronous suspension>
E/flutter (15902): 

android studio或flutter SDK本身有什么问题吗?我还注意到,当应用程序完全正常运行时,生成了一个文件,该文件名为“generated_plugin_registrant.dart”。

更新: 我从窗户上移除了颤振并再次安装了它,但效果不佳。现在我认为我应该完全卸载 android studio 并重新安装它,因为到目前为止我的代码中没有发现任何错误或错误实现,请告诉我是否有任何错误。

请帮帮我。

感谢您的回复。

【问题讨论】:

    标签: firebase flutter dart


    【解决方案1】:

    我在互联网上搜索了很多,但解决方案非常简单。发生这种情况是因为我的 MainActivity.kt 中缺少以下代码。 代码:

    override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { GeneratedPluginRegistrant.registerWith(flutterEngine); }

    它没有注册颤振插件,这就是为什么它给出了一个错误,我花了 2 天半的时间我希望如果其他人遇到这个问题,他们可以比我更早解决它。

    感谢您的所有回复。

    【讨论】:

    • 在哪里添加这个代码?你能显示完整的代码吗?谢谢
    【解决方案2】:

    我遇到了同样的问题。我也尝试了很多像你一样的解决方案,但无法解决它的问题。

    后来,我最终创建了一个新项目,从原始项目中仔细复制了 firebase 和多个其他包。之后,我复制了 lib/android 中的每个文件以及它们各自在 build.gradle 和 manifests 中的配置。对于 iOS,我只是复制了整个项目并立即生效。

    你也可以像我一样尝试。创建一个新项目并将旧项目中的所有内容复制到新项目中,一一查看此问题是否已解决。

    【讨论】:

      【解决方案3】:

      尝试运行

      flutter clean
      flutter pub get
      

      在终端中看看是否有帮助

      【讨论】:

      • 感谢您的回复我已经尝试过以及flutter pup缓存修复,它没有工作。
      【解决方案4】:

      你试过在终端运行flutter clean吗?

      flutter clean
      

      然后

      flutter pub get
      

      编辑:

      或者, 在dependencies 下的android/build.gradle 中,如果有帮助,您可以使用其他版本的 gradle 构建工具

      classpath 'com.android.tools.build:gradle:3.5.0'
      

      【讨论】:

      • 感谢您的回复我已经尝试过以及flutter pup缓存修复,它没有工作。
      • 您是否尝试过在 buildTypes 中将 minifyEnabled 和 shrinkResources 设置为 false?
      • 或者您是否尝试过使用其他方法对其进行初始化?正如这里提到的:stackoverflow.com/a/63492262/7015400
      • 或者使用其他版本的 gradle 构建工具有帮助吗?我将编辑我的答案并将该行放在那里。
      • 我尝试过更改初始化方法,也尝试过使用不同的 Gradle 构建工具和插件,但没有任何改变,并且我还添加了收缩资源并将 minifyEnabled 设置为 false,但也没有用。但是,我注意到了一些警告,所以我正在更新问题,请检查一次。
      猜你喜欢
      • 1970-01-01
      • 2022-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      • 2018-05-14
      • 1970-01-01
      相关资源
      最近更新 更多