Android facebook-login 库 11.2.0 崩溃 Android 12 - 定位 S+(版本 31 及更高版本)需要 FLAG_IMMUTABLE 或 FLAG_MUTABLE 之
Posted
技术标签:
【中文标题】Android facebook-login 库 11.2.0 崩溃 Android 12 - 定位 S+(版本 31 及更高版本)需要 FLAG_IMMUTABLE 或 FLAG_MUTABLE 之一【英文标题】:Android facebook-login library 11.2.0 crashes Android 12 - Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE 【发布时间】:2021-11-03 23:13:30 【问题描述】:我正在使用带有 facebook-login 的 Firebase 并收到以下错误:
Caused by: java.lang.IllegalArgumentException: my.app.id: 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)
我正在使用的 gradle 库条目是:
implementation 'com.facebook.android:facebook-login:11.2.0'
setTokenExpirationBroadcastAlarm
代码似乎没有设置标志。有没有人对此有解决方法或知道我做错了什么?
当用户登录时,我的代码在onActivityResult
中调用:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)
super.onActivityResult(requestCode, resultCode, data)
// Pass the activity result back to the Facebook SDK
facebookCallbackManager.onActivityResult(requestCode, resultCode, data)
我正在使用 Android 12 的 Pixel 上对此进行测试。
【问题讨论】:
如果您无法控制构建PendingIntent
,那么您将无法修复它(除了尚未针对 Android 12 之外)。您需要联系 Facebook 让他们修复他们的图书馆。
看起来这个问题的修复将在 11.3.0 中发布。 ??? github.com/facebook/facebook-android-sdk/issues/…
【参考方案1】:
降级到版本11.0.0
对我有用。尝试降级。
【讨论】:
以上是关于Android facebook-login 库 11.2.0 崩溃 Android 12 - 定位 S+(版本 31 及更高版本)需要 FLAG_IMMUTABLE 或 FLAG_MUTABLE 之的主要内容,如果未能解决你的问题,请参考以下文章
点击 Facebook 登录按钮后 Facebook 登录对话框消失
如何获取用于 react-native-fbsdk 模块的 Facebook SDK 版本
Android 逆向Android 中常用的 so 动态库 ( /system/lib/libc.so 动态库 | libc++.so 动态库 | libstdc++.so 动态库 )(代