You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中java.lang.IllegalStateException: Facebook provider未配置问题求助

解决java.lang.IllegalStateException: Facebook provider unconfigured异常

我明白你在集成FirebaseUI Auth和Facebook登录时遇到的头疼问题——明明已经加了配置,却还是弹出这个异常。别着急,问题的核心其实是字符串资源的名称不匹配!

FirebaseUI Auth的Facebook登录模块有个硬性要求:必须存在名为facebook_application_id的字符串资源,但你目前在strings.xml里定义的是facebook_app_id,这就是触发报错的关键原因。

具体修复步骤:

  1. 修正strings.xml的字符串名称
    你需要添加(或重命名)符合FirebaseUI要求的字符串,同时可以保留原有的facebook_app_id给Facebook SDK本身使用:

    <resources>
    <string name="app_name">meter</string>
    <!-- FirebaseUI Auth需要的字符串 -->
    <string name="facebook_application_id">my_id</string>
    <!-- Facebook SDK本身需要的字符串(可以保留) -->
    <string name="facebook_app_id">my_id</string>
    <string name="fb_login_protocol_scheme">fbmy_fb_login_protocol_scheme</string>
    <string name="twitter_consumer_key" translatable="false">MY_TWITTER_KEY</string>
    <string name="twitter_consumer_secret" translatable="false">MY_SECRET</string>
    </resources>
    
  2. 确认Manifest配置的正确性
    检查你的AndroidManifest.xml里的Facebook相关配置:

    • meta-data部分指向facebook_app_id是正确的(这是Facebook SDK的要求)
    • FacebookContentProvider的authorities必须是com.facebook.app.FacebookContentProvider加上你的真实纯数字App ID(不要带fb前缀):
      <provider android:authorities="com.facebook.app.FacebookContentProvider你的真实AppID" 
                android:name="com.facebook.FacebookContentProvider" 
                android:exported="true" />
      
  3. 清理并重建项目
    最后执行Build -> Clean Project,再Rebuild Project,确保新的字符串资源被正确编译到APK中。

补充说明:

这里容易混淆的点是:Facebook SDK本身要求的字符串名称是facebook_app_id,但FirebaseUI Auth为了区分其他配置,要求的是facebook_application_id,所以两者的字符串都需要存在(或者直接把原字符串重命名为facebook_application_id,同时修改Manifest里的meta-data指向它也可以)。

内容的提问来源于stack exchange,提问作者VINNUSAURUS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:03:07