如何修复使用react-native-splash-screen时出现的重复类错误?
React Native安装react-native-splash-screen后安卓构建重复类错误解决方法及原因分析
问题原因
这个错误的核心是AndroidX与旧版Android Support Library的共存冲突:
react-native-splash-screen依赖了旧的com.android.support:support-compat库,而你的项目已经启用了AndroidX(使用androidx.core:core库)。这两个库包含完全相同的类定义(比如报错里的android.support.v4下的各类),Gradle构建时无法区分,因此抛出重复类错误。
AndroidX是Google官方推出的替代旧Support Library的全新库体系,两者本质上是同一套API的不同命名空间实现,绝对不能在同一个项目中混用,否则必然出现这类冲突。
解决方法
1. 启用Jetifier自动迁移依赖
在项目根目录的android/gradle.properties文件中添加以下配置,让Gradle自动将所有第三方依赖中的旧Support Library引用转换为AndroidX:
android.useAndroidX=true android.enableJetifier=true
Jetifier是官方提供的工具,会自动修改第三方依赖的字节码,把旧的android.support包路径替换为androidx对应的路径,从根源上解决依赖冲突。
2. 清理缓存后重新构建
配置完成后,需要清理项目缓存避免残留的旧依赖影响:
- 执行项目级清理:
yarn clean(或npm run clean) - 进入安卓目录执行构建缓存清理:
cd android && ./gradlew clean - 重新运行构建:
yarn android
3. 手动排除冲突依赖(可选)
如果启用Jetifier后仍有问题,可以手动排查并排除冲突的旧依赖:
- 进入安卓目录,执行
./gradlew app:dependencies查看完整依赖树,找到引用com.android.support:support-compat的依赖项 - 在
android/app/build.gradle中,给对应的依赖添加排除规则,比如针对react-native-splash-screen:
implementation(project(':react-native-splash-screen')) { exclude group: 'com.android.support', module: 'support-compat' }
内容的提问来源于stack exchange,提问作者johnrubythecat
相关产品推荐
相关产品推荐

