Facebook login error in Flutter - Please follow our document to upgrade to new APIs to avoid overriding onActivityResult()

1.2k Views Asked by At

Error: You're calling logging in Facebook with an activity supports androidx activity result APIs. Please follow our document to upgrade to new APIs to avoid overriding onActivityResult().

I do not have an MainActivity.java file. Instead I have MainActivity.kt

Here my MainActivity.kt:

package com.***.app

import io.flutter.embedding.android.FlutterFragmentActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant

class MainActivity: FlutterFragmentActivity() {
    override fun configureFlutterEngine(flutterEngine: 
FlutterEngine) {
        GeneratedPluginRegistrant.registerWith(flutterEngine)
    }
}

And here my AndroidManifest.xml

<application 
        android:usesCleartextTraffic="true"
        android:requestLegacyExternalStorage="true"
        android:label="***"
        android:icon="@mipmap/ic_launcher">
        <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"/>
        <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>
        <activity
            android:name=".MainActivity"
    ...

This is, how I call the flutter_facebook_auth package login method

flutter_facebook_auth: ^4.4.1+1


import 'package:flutter_facebook_auth/flutter_facebook_auth.dart';
final LoginResult result = await FacebookAuth.instance
            .login(permissions: ['name', 'email']);

I followed the steps described here:

1

There are 1 best solutions below

0
Caspar Bm On

Solved the problem by using flutter_login_facebook instead of flutter_facebook_auth. There where no further changes necessary then that

Thanks to @Bellrampion for the suggestion.

From:

 final LoginResult result = await FacebookAuth.instance
                .login(permissions: ['name', 'email']);

to

import 'package:flutter_login_facebook/flutter_login_facebook.dart';

class FacebookSignInApi {
  // Create an instance of FacebookLogin
  static final fb = FacebookLogin();

  static login() async {
// Log in
    final res = await fb.logIn(permissions: [
      FacebookPermission.publicProfile,
      FacebookPermission.email,
    ]);
  }
}