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,这就是触发报错的关键原因。
具体修复步骤:
修正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>确认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" />
- meta-data部分指向
清理并重建项目
最后执行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
相关产品推荐
相关产品推荐

