Flutter:尝试使用 FlutterEngine 自动注册插件,但无法找到并调用 GeneratedPluginRegistrant

Ved*_*ore 10 android gradle build.gradle flutter flutter-dependencies

运行此命令时出现这些错误

flutter run --flavor development -t lib/config/main_development.dart --verbose-system-logs
Run Code Online (Sandbox Code Playgroud)

错误:

Tried to automatically register plugins with FlutterEngine (io.flutter.embedding.engine.FlutterEngine@b5226bb) but could not find and invoke the GeneratedPluginRegistrant.
Run Code Online (Sandbox Code Playgroud)
E/flutter (28896): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: MissingPluginException(No implementation found for method initialize on channel flutter_stetho)
Run Code Online (Sandbox Code Playgroud)

颤振医生输出:

? flutter doctor -v                                                                         
[?] Flutter (Channel master, 1.20.0-8.0.pre.22, on Mac OS X 10.14.6 18G3020, locale en)
    • Flutter version 1.20.0-8.0.pre.22 at /Users/vedantrathore/tools/flutter
    • Framework revision 61a04b1551 (11 hours ago), 2020-07-09 15:52:19 +0800
    • Engine revision 0ec6f6c3f2
    • Dart version 2.9.0 (build 2.9.0-20.0.dev 06cb010247)

 
[?] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/vedantrathore/Library/Android/sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
    • All Android licenses accepted.

[?] Xcode - develop for iOS and macOS (Xcode 11.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.3.1, Build version 11C504
    • CocoaPods version 1.9.1

[?] Android Studio (version 3.6)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 44.0.2
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)

[?] VS Code (version 1.46.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.12.1

[?] Connected device (1 available)
    • GM1901 (mobile) • 192.168.29.75:5555 • android-arm64 • Android 10 (API 29)

• No issues found!
Run Code Online (Sandbox Code Playgroud)

这是我的 app/build.gradle 文件

flutter run --flavor development -t lib/config/main_development.dart --verbose-system-logs
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 flutter_secure_storage 包,因此我必须将 minSdkVersion 设置为 18 并使用 Proguard 规则来避免 multiDex (因为需要 minSdkVersion 21)

我尝试过的解决方案:

  • 运行flutter clean,卸载应用程序,清除~/.pub-cache
  • 从稳定版转移到主频道

编辑

我通过深入研究解决了这个问题,并在 Android Studio 中打开了应用程序,进入了 Flutter 活动的实现,并在它尝试注册插件的地方设置了一个断点,然后当我运行应用程序时,我发现错误是 FacebookSdk '未初始化。我正在使用 pub.dev/packages/flutter_facebook_login 包,但忘记了 android 初始化。可以改进错误处理以适应这些情况

Facebook SDK 初始化错误

小智 5

今天我面临着同样的问题。我认为这与此有关: https ://flutter.dev/docs/development/packages-and-plugins/plugin-api-migration

(这可能只是临时解决方案)我将注册者写回给我MainActivity.kt- 如果您的班级主体为空,它可能会有所帮助

package your.package.name

import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant

class MainActivity: FlutterActivity() {
    override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
        GeneratedPluginRegistrant.registerWith(flutterEngine);
    }
}
Run Code Online (Sandbox Code Playgroud)