FacebookComponents
FacebookComponents copied to clipboard
Crash on Android 12
Facebook login fail, if Android target API is set to 31 and device running Android 12
java.lang.IllegalArgumentException: air.nn.mobile.app.main: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles. at android.app.PendingIntent.checkFlags(PendingIntent.java:375) at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:645) at android.app.PendingIntent.getBroadcast(PendingIntent.java:632) at com.facebook.AccessTokenManager.setTokenExpirationBroadcastAlarm(AccessTokenManager.kt:121) at com.facebook.AccessTokenManager.setCurrentAccessToken(AccessTokenManager.kt:94) at com.facebook.AccessTokenManager.setCurrentAccessToken(AccessTokenManager.kt:47) at com.facebook.AccessToken$Companion.setCurrentAccessToken(AccessToken.kt:428) at com.facebook.AccessToken.setCurrentAccessToken(Unknown Source:2) at com.facebook.login.LoginManager.finishLogin(LoginManager.java:894) at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:247) at com.facebook.login.LoginManager$1.onActivityResult(LoginManager.java:186) at com.facebook.internal.CallbackManagerImpl.onActivityResult(CallbackManagerImp
I found that: https://stackoverflow.com/a/70763530/8880035
This has been resolved with SDK 12.3.0 https://github.com/facebook/facebook-android-sdk/issues/997
when can this be updated here?
@Redth and @mattleibow I saw that you guys have released the latest Android versions of this library.
Could you please look into this issue, #224 and pull request #237
If the project is not maintained anymore that's fine but just let us know, so we know what to expect going forward.
I was able to trim from the library everything except the login functionality with keeping all of the old NuGet packages, you can find the source code here: https://github.com/Snegovikufa/FacebookComponents.
I created a slim binding to reduce the effort of upgrading to newer facebook sdk versions. Feel free to contribute if you need additional features to be supported by the slim binding: https://github.com/thisisthekap/Xamarin.FacebookSlim.Droid
I created a slim binding to reduce the effort of upgrading to newer facebook sdk versions. Feel free to contribute if you need additional features to be supported by the slim binding: https://github.com/thisisthekap/Xamarin.FacebookSlim.Droid
Hi. could you give an implementation example?
@sarapura12 Please have a look to the java code at https://github.com/thisisthekap/Xamarin.FacebookSlim.Droid/tree/main/java/FacebookSlim/facebookslim/src/main/java/com/tonestro/facebookslim.
This defines which methods are bound, and how they are bound. This should enable you to deduce the right C# calls.
@thisisthekap I can't figure out how to use your library. Please provide some sample as replacing this library with yours is not a straight-forward process.
@AnTo0o0o A slim binding exposes an API surface with reduced complexity which is then bound. This API surface is defined in https://github.com/thisisthekap/Xamarin.FacebookSlim.Droid/tree/main/java/FacebookSlim/facebookslim/src/main/java/com/tonestro/facebookslim
Some examples:
- The java call
com.tonestro.facebookslim.LoginManagerSlimFactory.createInstance()
is translated to the C# callCom.Tonestro.Facebookslim.LoginManagerSlimFactory.CreateInstance()
- The java call
com.tonestro.facebookslim.AppEventsLoggerSlim.newLogger(android.context.Context)
translates to the C# callCom.Tonestro.Facebookslim.AppEventsLoggerSlim.NewLogger(Android.Content.Context)
Please does anybody know how to fix this issue ? It still causes crash in prod. And I can't find a nugget package for version 12 of the facebook sdk
@DamienDoumer I've seen this issue couple of times and found some solution on stackoverflow when someone says that if you're going to install nugget package called Xamarin.AndroidX.Work.Work.Runtime.Ktx
at least version 2.7.1 it should fix it. Since then I haven't noticed crashes anymore. However I'm not getting any info in login callback after being successfull logged in.
Any idea when would below thing be part of Microsoft Xamarin Facebook v11.2.0.1 or later as this is crashing for me with error "java.lang.IllegalArgumentException: air.nn.mobile.app.main: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles."
This has been resolved with SDK 12.3.0 https://github.com/facebook/facebook-android-sdk/issues/997
It's one year ago that Facebook fixed the bug on there side. Why it takes so long to fix the Xamarin binding? This is a "blocker" bug. The app will crash if you would use the current version of the Facebook binding! Last nuget was build in October 2021.
Problem is that the admins have not made the pipeline public nor do any code maintenance anymore for android
On Thu, Jan 19, 2023 at 10:16 AM Uwe Schaller @.***> wrote:
It's one year ago that Facebook fixed the bug on there side. Why it takes so long to fix the Xamarin binding? This is a "blocker" bug. The app will crash if you would use the current version of the Facebook binding! Last nuget was build in October 2021.
— Reply to this email directly, view it on GitHub https://github.com/xamarin/FacebookComponents/issues/236#issuecomment-1396661014, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKYEC34QMPIGC4GRBFNGCGTWTEA6FANCNFSM5T7TIQAA . You are receiving this because you commented.Message ID: @.***>
@uwe-neuronation you can build updated NuGets manually:
- Clone
https://github.com/angpysha/FacebookComponents.git
- Check out
fix/android-12-fix
branch - Modify
NUGET_VERSION
inFacebook.Android/build.cake
to something like13.1.0-beta01
- Install cake (on Mac
brew install cake
) - Run
cake Facebook.Android/build.cake
. NuGets will be created inFacebook.Android/output
directory.
@lassana We created Custom Nuget packages with this fix/android-12-fix branch. But we are facing Nuget packages dependency issue while installing those packages. Please find the attached screenshot below.
Error: Attempting to resolve dependencies for package 'Xamarin.Facebook.Login.Android.13.1.0-beta01' with DependencyBehavior 'Lowest' Unable to find a version of 'Xamarin.Android.Arch.Core.Common' that is compatible with 'Xamarin.Android.Arch.Core.Runtime 1.1.1.2 constraint: Xamarin.Android.Arch.Core.Common (= 1.1.1.2)', 'Xamarin.Android.Arch.Lifecycle.LiveData 1.1.1.2 constraint: Xamarin.Android.Arch.Core.Common (= 1.1.1.2)', 'Xamarin.Android.Arch.Lifecycle.LiveData.Core 1.1.1.2 constraint: Xamarin.Android.Arch.Core.Common (= 1.1.1.2)'.
If we updated to one package that packages depends on others, it's like looping for all packages.

Found this project, seems like someone lost patience with this repo and created updated bindings.
https://www.nuget.org/packages/Xam.Facebook.Login.Android
This issue does not happen with this nuget.
We can use this library now on Facebook Audience Network SDK for .NET for Android Anjo.Android.Facebook.AudienceNetwork (>= 6.16.0) and for login Anjo.Android.Facebook (>= 16.2.0)