安装react-native-lottie-splash-screen后遇:app:checkDebugDuplicateClasses错误求助
问题本质
你遇到的构建错误核心是第三方包的Android模块配置未适配新版Android Gradle插件。错误日志明确提示:
Task :react-native-lottie-splash-screen:processDebugManifest
package="org.devio.rn.splashscreen" found in source AndroidManifest.xml: /Applications/Senior Aid/MobileApp/senioraid/node_modules/react-native-lottie-splash-screen/android/src/main/AndroidManifest.xml.
Setting the namespace via the package attribute in the source AndroidManifest.xml is no longer supported, and the value is ignored.
Recommendation: remove package="org.devio.rn.splashscreen" from the source AndroidManifest.xml: /Applications/Senior Aid/MobileApp/senioraid/node_modules/react-native-lottie-splash-screen/android/src/main/AndroidManifest.xml.
新版插件已不再支持通过AndroidManifest.xml的package属性设置命名空间,这个包的配置没跟上,才引发了重复类检查错误。
直接修改node_modules可行吗?
可以临时解决问题,但不是长久方案:
- 临时修复步骤:找到上述路径的AndroidManifest.xml文件,删除
package="org.devio.rn.splashscreen"这一行,再重新执行npm run android即可正常构建。 - 弊端:每次执行
npm install、重新拉取依赖或更新包时,修改的内容会被覆盖,需要重复操作。
更稳妥的解决办法
1. 用patch-package打持久化补丁
这是社区常用的第三方包代码修改方案,修改记录会被保存,无需重复手动操作:
- 安装依赖:
npm install patch-package --save-dev - 修改完node_modules里的AndroidManifest.xml后,执行
npx patch-package react-native-lottie-splash-screen,项目根目录会生成patches文件夹存储修改记录。 - 在package.json的scripts中添加:
"postinstall": "patch-package",这样每次npm install后会自动应用补丁。
2. 升级包到最新版本
去npm查看react-native-lottie-splash-screen的最新版本,若官方已修复该问题,直接执行:npm install react-native-lottie-splash-screen@latest,再尝试构建。
3. 替换为维护更活跃的库
如果这个包长期未更新,可考虑更换为react-native-splash-screen或expo-splash-screen(使用Expo时)这类维护状态更好的启动页库,避免后续兼容性问题。
内容的提问来源于stack exchange,提问作者SHASHANK SHUKLA

