对于 Android 11,您可以向项目的 AndroidMainfest.xml
添加以下 queries
代码块来解决此问题:
<manifest package="com.example.app"> <queries> <provider android:authorities="com.facebook.katana.provider.PlatformProvider" /> </queries> ... </manifest>
您可在 Android 版 Facebook SDK 内改写字符串,此操作可以通过在自己的“strings.xml”文件内提供翻译来实现,从而获得需要的语言环境。
“facebook/res/values/”目录中的“strings.xml”文件包括 SDK 使用的所有字符串。字符串资源的名称应简单明了。
详情请参阅 Android 开发者指南:资源本地化。
正常情况下,Android 库可使用“BuildConfig.DEBUG”确定应用是否处于调试模式。但由于 Gradle 中的缺陷,必须始终在“DEBUG”设置为 false 的情况下建立 Android 库。为解决这个问题,我们提供了“FacebookSdk.setIsDebugEnabled(boolean)”方法,方便您直接从应用设置调试模式。这将实现记录 SDK 的调试信息。
此外,您还可以通过“FacebookSdk.addLoggingBehavior(LogginBehavior)”设置记录行为,为不同的消息类别启用记录。详情请参阅 Android SDK 参考文档,LoggingBehavior。
分享对话框会根据用户操作回调“onSuccess”和“onCancel”。
请求发布权限时,您可能会收到以下错误:
此错误消息表示您的应用在前一个请求尚未完成时尝试请求新的权限。所有权限请求都是异步处理的,所以只有当前一个请求完成后才能请求新的权限。
请查看 SDK 随附的示例应用,例如:Scrumptious 或 Hello Facebook,了解如何在多个步骤内请求新权限。
如果记录内没有错误,则可能的原因是请求未被执行。要执行“GraphRequest”,请调用“executeAsync”方法。
如需登录或使用原生“分享”对话框,您需要向 Facebook 提供您用于为应用签名的密钥。
这是一个密钥的 SHA-1 哈希,可用于为应用签名。通常,至少会使用两个不同的密钥:一个用于开发和调试,一个用于发布。所以,请确保在应用的设置页面添加两个值。
详情请参阅 Android 版 SDK 入门,创建开发密钥哈希。
最常见的原因是未在“AndroidManifest.xml”内设置“ContentProvider”。请确保将其随应用编号一同添加至“AndroidManifest.xml”文件。详情请参阅 Android 分享,前提条件。