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

React Native Android构建遇com.facebook.jni/soloader重复类错误求助

React Native Android 重复类(com.facebook.jni/soloader)问题解决方案

核心问题分析

你的问题源于react-native-secure-storage依赖的com.facebook.conceal:conceal:2.0.2与React Native 0.72.5自带的fbjni、soloader模块存在类重复——conceal内部包含了这些类的旧版本,和RN核心依赖的新版本冲突,导致编译失败。

有效解决方案

方案1:升级react-native-secure-storage到兼容RN 0.72+的版本

优先尝试升级库到适配RN 0.72的最新稳定版,多数旧库的新版本已修复依赖冲突问题:

npm install react-native-secure-storage@latest --legacy-peer-deps

升级后无需手动修改库的Gradle配置,依赖会自动适配RN版本。

方案2:全局统一冲突依赖版本并排除重复

如果升级库不可行,在项目根目录的build.gradle(非app模块)的allprojects块中添加依赖解析策略,强制使用RN自带的冲突依赖版本,并排除conceal中的重复类:

allprojects {
    repositories {
        // 保留原有仓库配置
    }
    configurations.all {
        resolutionStrategy {
            // 强制使用RN自带的fbjni版本
            force 'com.facebook.fbjni:fbjni:0.3.0'
            // 强制使用RN自带的soloader版本
            force 'com.facebook.soloader:soloader:0.10.5'
            // 从conceal中排除重复的fbjni和soloader模块
            exclude group: 'com.facebook.fbjni', module: 'fbjni'
            exclude group: 'com.facebook.soloader', module: 'soloader'
        }
    }
}

方案3:给react-native-secure-storage打补丁(适配旧版本)

若必须使用旧版react-native-secure-storage,用patch-package工具打补丁,避免手动修改本地文件被npm覆盖:

  1. 安装patch-package:
npm install patch-package --save-dev
  1. 修改node_modules/react-native-secure-storage/android/build.gradle的依赖块:
dependencies {
    implementation 'com.facebook.react:react-native:+'
    // 调整conceal依赖,排除内部的冲突模块
    implementation('com.facebook.conceal:conceal:2.0.2@aar') {
        exclude group: 'com.facebook.fbjni'
        exclude group: 'com.facebook.soloader'
    }
}
  1. 生成补丁:
npx patch-package react-native-secure-storage

后续每次执行npm install后,补丁会自动应用。

验证步骤

  1. 清理构建缓存:
./gradlew clean
  1. 重新同步Gradle
  2. 运行项目:
npx react-native run-android

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 05:13:13