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

RN 0.62.2切换Hermes替代JSC编译报错D8重复类问题求助

解决React Native 0.62.2切换Hermes时的Dex重复类错误

这个问题我之前在帮同事排查RN项目切换Hermes的问题时刚好碰到过,本质是依赖冲突导致的重复类问题,下面几个方法亲测有效,你可以挨个试试:

方法1:排除重复的Renderscript依赖

问题出在多个依赖包同时引入了androidx.renderscript库,导致打包时出现类重复。你可以在android/app/build.gradle的dependencies块里,给相关依赖添加排除规则:

dependencies {
    // 先给RN核心依赖排除重复库
    implementation (project(':react-native')) {
        exclude group: 'androidx.renderscript', module: 'renderscript'
    }
    // 如果你的项目里还有其他第三方库也引入了renderscript,比如某些UI组件或原生模块,也需要同样添加exclude
    // 举个例子:
    // implementation ('com.example:some-third-party-lib:2.0.0') {
    //     exclude group: 'androidx.renderscript', module: 'renderscript'
    // }
}

方法2:强制统一Renderscript版本

如果排除依赖的方式没效果,可以尝试在android/build.gradle的allprojects块里,强制指定所有依赖使用同一个版本的renderscript,避免版本不一致导致的冲突:

allprojects {
    repositories {
        // 你的仓库配置(比如google()、mavenCentral()这些)
    }
    configurations.all {
        resolutionStrategy {
            // 这里指定一个和RN 0.62.2兼容的版本,比如1.1.0
            force 'androidx.renderscript:renderscript:1.1.0'
        }
    }
}

方法3:彻底清理缓存后重新构建

有时候旧的构建缓存会残留冲突的依赖文件,导致问题一直存在,执行以下命令彻底清理:

# 清理RN项目缓存
npx react-native clean
# 进入Android目录清理Gradle缓存
cd android && ./gradlew clean
# 返回根目录重新构建项目
cd .. && npx react-native run-android

方法4:检查Hermes配置是否正确

确保你在android/app/build.gradle里正确开启了Hermes,没有多余的手动配置:

project.ext.react = [
    enableHermes: true,  // 确认这里是true,开启Hermes
    // 其他配置比如entryFile、bundleAssetName等保持默认即可
]

如果你之前手动添加过Hermes的依赖包,记得删掉,RN 0.62.x版本已经自带Hermes相关依赖,手动添加会导致冲突。

一般来说,方法1+方法3组合使用就能解决这个问题,如果还是不行,再试试方法2强制统一版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 16:32:38