You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter集成Facebook登录遇MissingPluginException问题求助

Flutter集成Facebook登录报MissingPluginException错误排查

已按官方文档完成Flutter中Facebook登录功能的配置,但重启应用后仍报错:

MissingPluginException(No implementation found for method login on channel app.meedu/flutter_facebook_auth)

控制台仅输出该错误,无其他异常信息。以下是相关配置文件及代码:

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.social_media_login">
    <queries>
        <provider android:authorities="com.facebook.katana.provider.PlatformProvider" /> <!-- 允许应用访问Facebook功能 -->
        <provider android:authorities="com.facebook.orca.provider.PlatformProvider" /> <!-- 允许分享至Messenger -->
    </queries>
    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:label="social_media_login"
        android:name="${applicationName}"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <meta-data
              android:name="io.flutter.embedding.android.NormalTheme"
              android:resource="@style/NormalTheme"
              />
            <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
            <meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <activity android:name="com.facebook.FacebookActivity"
            android:configChanges=
                "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:label="@string/app_name" />
        <activity
            android:name="com.facebook.CustomTabActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="@string/fb_login_protocol_scheme" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>
</manifest>

pubspec.yaml

name: social_media_login
description: Grip September 2022 Social Media Login in Apps

publish_to: 'none'

version: 1.0.0+1

environment:
  sdk: ">=2.17.6 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.2
  twitter_login: ^4.2.3
  font_awesome_flutter: ^10.1.0
  google_sign_in: ^5.4.1
  flutter_facebook_auth: ^4.4.1
  provider: ^6.0.3
  shared_preferences: ^2.0.15
  flutter_profile_picture: ^2.0.0
  cached_network_image: ^3.2.1
dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^2.0.0

flutter:
  uses-material-design: true
  assets:
    - Images/LoginPage/Login Page.jpg
    - Images/HomePage/DefaultProfileImage.jpg

Dart登录代码

Future<void> _facebookSignIn() async {
    try {
      final result =
          await FacebookAuth.i.login(permissions: ['public_profile', 'email']);
      if (result.status == LoginStatus.success) {
        final userData = await FacebookAuth.i.getUserData();
        print(userData);
      }
    } catch (error) {
      print(error);
    }
}

排查解决方法

1. 基础缓存与依赖重置

  • 执行flutter clean清理项目缓存,再运行flutter pub get重新拉取所有依赖
  • 彻底关闭模拟器/真机上的应用进程,重新启动,避免热重载导致的插件未注册问题
  • 在Android Studio中执行File > Sync Project with Gradle Files,确保Android项目配置同步完成

2. 插件注册校验

  • 检查自动生成的GeneratedPluginRegistrant.java文件(路径:android/app/src/main/java/com/example/social_media_login/GeneratedPluginRegistrant.java),确认包含FlutterFacebookAuthPlugin.registerWith(registry);注册代码
  • 确认MainActivity继承自FlutterActivity,而非自定义的非标准Activity(Flutter嵌入v2模式要求)

3. 版本兼容性调整

  • 尝试升级flutter_facebook_auth到最新稳定版,执行命令:flutter pub upgrade flutter_facebook_auth
  • 检查Android Gradle配置:确保android/build.gradle中com.android.tools.build:gradle版本≥7.0,Gradle版本≥7.0,与插件版本匹配

4. 配置细节检查

  • 确认res/values/strings.xml中已正确配置facebook_app_id、facebook_client_token,且fb_login_protocol_scheme格式为fb{你的Facebook应用ID}(例如fb123456789)
  • 若为混合开发项目,需在MainActivity的onCreate方法中手动添加插件初始化代码:FlutterFacebookAuthPlugin.initialize(this);

内容的提问来源于stack exchange,提问作者ayush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 00:20:56