React Native集成Facebook认证时出现类重复定义报错
解决React Native集成Facebook认证时的「Program type already present」报错
嘿,这个问题我之前也碰到过!报错Program type already present: com.facebook.AccessTokenTracker$CurrentAccessTokenBroadcastReceiver本质是重复依赖了Facebook Android SDK导致的类冲突,我来给你一步步解决:
1. 移除重复的Facebook SDK依赖
你的app/build.gradle里同时引入了react-native-fbsdk和手动添加的com.facebook.android:facebook-android-sdk:4.33.0,但react-native-fbsdk本身已经内置了对Facebook SDK的依赖,这就造成了同一个类被多次打包。
打开app/build.gradle,删除这一行:
implementation 'com.facebook.android:facebook-android-sdk:4.33.0'
2. 确保依赖版本兼容
你的react-native-fbsdk版本是^0.8.0,这个版本已经和对应的Facebook SDK版本做了适配,不需要手动指定SDK版本。如果后续遇到版本兼容问题,可以通过Gradle的依赖排除功能调整,但目前先移除手动添加的依赖就够了。
3. 清理并重新构建项目
依赖修改后,必须清理旧的构建缓存再重新编译:
- 在Android Studio中依次点击
Build > Clean Project,然后Build > Rebuild Project - 或者在项目根目录执行命令行:
cd android && ./gradlew clean && cd .. && react-native run-android
额外检查(可选)
- 确认
react-native-fbsdk已经正确链接:运行react-native link react-native-fbsdk(你的RN版本0.57.8支持自动链接,但手动执行一遍更稳妥) - 检查
android/build.gradle的allprojects配置里是否包含Facebook的Maven仓库,确保依赖能正常下载:
allprojects { repositories { // ...其他已有的仓库 mavenCentral() maven { url "https://maven.facebook.com" } } }
内容的提问来源于stack exchange,提问作者Harleen Kaur Arora
相关产品推荐
相关产品推荐

