Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash on Android 12 #236

Open
uwe-neuronation opened this issue Apr 21, 2022 · 17 comments
Open

Crash on Android 12 #236

uwe-neuronation opened this issue Apr 21, 2022 · 17 comments

Comments

@uwe-neuronation
Copy link

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

@mos379
Copy link

mos379 commented Apr 27, 2022

This has been resolved with SDK 12.3.0
facebook/facebook-android-sdk#997

when can this be updated here?

@tentom
Copy link

tentom commented Aug 23, 2022

@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.

@Snegovikufa
Copy link

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.

@thisisthekap
Copy link
Contributor

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

@sarapura12
Copy link

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?

@thisisthekap
Copy link
Contributor

@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.

@AnTo0o0o
Copy link

AnTo0o0o commented Dec 7, 2022

@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.

@thisisthekap
Copy link
Contributor

@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# call Com.Tonestro.Facebookslim.LoginManagerSlimFactory.CreateInstance()
  • The java call com.tonestro.facebookslim.AppEventsLoggerSlim.newLogger(android.context.Context) translates to the C# call Com.Tonestro.Facebookslim.AppEventsLoggerSlim.NewLogger(Android.Content.Context)

@DamienDoumer
Copy link

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

@Rudnicky
Copy link

@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.

@HarshalCapgemini
Copy link

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
facebook/facebook-android-sdk#997

@uwe-neuronation
Copy link
Author

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.

@mos379
Copy link

mos379 commented Jan 19, 2023 via email

@lassana
Copy link

lassana commented Jan 20, 2023

@uwe-neuronation you can build updated NuGets manually:

  1. Clone https://github.com/angpysha/FacebookComponents.git
  2. Check out fix/android-12-fix branch
  3. Modify NUGET_VERSION in Facebook.Android/build.cake to something like 13.1.0-beta01
  4. Install cake (on Mac brew install cake)
  5. Run cake Facebook.Android/build.cake. NuGets will be created in Facebook.Android/output directory.

@SakthivelCapgemini
Copy link

@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.

Screenshot 2023-01-24 at 12 08 57 PM

@czmirek
Copy link

czmirek commented Dec 8, 2023

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.

@mhdwaelanjo
Copy link

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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests