MissingPluginException(在通道plugins.flutter.io/firebase_core 上找不到方法 Firebase#initializeCore 的实现)

问题描述 投票:0回答:2

我正在使用 Firebase 身份验证构建一个 flutter 应用程序。当我在 Android 模拟器或 Android 手机上使用 flutter run 进行测试时,应用程序运行得很好,没有出现重大错误。

当我尝试构建 apk 或 appbundle 并且 Firebase.initializeApp() 失败时,就会出现问题。

由于我没有在调试模式下运行,所以我不确定如何跟踪此错误。

[更新]

我可以跟踪捕获从 Firebase.initializeApp() 抛出的异常的错误,并且是 MissingPluginException(在通道 plugins.flutter.io/firebase_core 上找不到方法 Firebase#initializeCore 的实现)

我仍然无法弄清楚为什么这个错误只出现在发布时,而调试运行完美。

这是我的 app/build.gradle 片段

(...)

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

(...)

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation platform('com.google.firebase:firebase-bom:26.2.0')
    implementation 'com.google.firebase:firebase-dynamic-links'
    implementation 'com.google.firebase:firebase-analytics'
    implementation 'com.google.firebase:firebase-auth'
    implementation 'com.google.firebase:firebase-firestore'
}

还有我的项目 build.gradle 依赖项

(...)

dependencies {
        classpath 'com.android.tools.build:gradle:4.0.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.4'
        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.9, 0.99.99]'
}

(...)

还有我的 firebase 依赖项

dependencies:
  flutter:
    sdk: flutter
  firebase_core: ^0.7.0
  cloud_firestore: ^0.16.0
  firebase_auth: ^0.20.0+1
  firebase_storage: ^7.0.0
firebase flutter google-cloud-firestore
2个回答
0
投票

我面临着同样的问题,所以我所做的是在我的

main.dart
文件中,我刚刚添加了这段代码,它对我来说很有效。它的作用是,如果
Firebase.intitalizeApp()
失败,那么它将显示我创建的错误页面,如果它加载,那么它可以显示应用程序主页,如果它仍在加载,那么它显示一个加载页面。这是它的代码。希望它能帮助你为我工作。

  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
      // Initialize FlutterFire
      future: Firebase.initializeApp(),
      builder: (context, snapshot) {

        // Check for errors
        if (snapshot.hasError) {
          return SomethingWentWrong();
        }

        // Show Application
        if (snapshot.connectionState == ConnectionState.done) {
          return StreamProvider<Help4YouUser>.value(
            value: AuthService().user,
            child: MaterialApp(
              debugShowCheckedModeBanner: false,
              home: Wrapper(),
            ),
          );
        }

        // Initialization
        return PouringHourGlassPageLoad();
      },
    );
  }

0
投票

构建应用程序而不是运行

flutter build web
时,请运行以下命令:
flutter build web --dart-define=Dart2jsOptimization=00

© www.soinside.com 2019 - 2024. All rights reserved.