修改compileSdkVersion至31后出现com.facebook.jni类重复编译错误求助
修复React Native Android compileSdkVersion 31下fbjni类重复冲突问题
1. 强制统一fbjni版本
在项目根目录的build.gradle(非app模块下的配置文件)中添加依赖分辨率规则,强制所有模块使用同一版本的fbjni,推荐选用较新的0.3.0版本:
allprojects { repositories { // 保留已有的仓库配置 } configurations.all { resolutionStrategy { force 'com.facebook.fbjni:fbjni:0.3.0' force 'com.facebook.fbjni:fbjni-java-only:0.3.0' } } }
该操作能确保所有依赖链中的fbjni版本统一,从根源避免类重复冲突。
2. 清理依赖缓存
执行以下Gradle命令清理旧缓存并刷新依赖,避免残留的旧版本文件干扰编译:
./gradlew clean ./gradlew build --refresh-dependencies
Windows环境替换为gradlew.bat执行对应命令。
3. 定位并排除冲突依赖
若强制版本后仍报错,通过依赖树命令找到引入旧版本fbjni的依赖库:
./gradlew app:dependencies
在app模块的build.gradle中,对该依赖添加排除规则,示例如下:
dependencies { // 假设react-native依赖引入了旧版本fbjni-java-only,添加排除规则 implementation('com.facebook.react:react-native:你的RN版本号') { exclude group: 'com.facebook.fbjni', module: 'fbjni-java-only' } }
4. 升级React Native版本(可选)
如果你的RN版本较旧,可能对compileSdkVersion 31的适配存在缺陷,尝试升级到0.68及以上版本,这类版本通常已修复相关依赖冲突问题。
内容的提问来源于stack exchange,提问作者Alija Fajic
相关产品推荐
相关产品推荐

