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

删除@react-native-community/datetimepicker后RNCAndroidDialogPicker重复注册如何解决

问题根因

首个报错Tried to register two views with the same name RNCAndroidDialogPicker是核心故障源,后续的AppRegistry报错都是该错误引发的React Native初始化失败。
冲突产生的原因是项目依赖树中同时存在两套Picker原生组件实现:

  1. 你单独安装的@react-native-picker/picker@2.1.0(官方维护的新版Picker包)
  2. native-base@2.15.2内置依赖的旧版@react-native-community/picker,你移除/重装@react-native-community/datetimepicker的操作触发了依赖树变动,导致两个版本的Picker包同时被安装,触发重复注册冲突。

解决步骤

按顺序执行以下操作:

  • 第一步:清理所有缓存与旧构建产物,排除缓存干扰
    先停掉正在运行的Metro服务,依次执行命令:
    # 删除依赖与锁定文件,使用yarn的用户保留yarn.lock、删除package-lock.json即可
    rm -rf node_modules package-lock.json yarn.lock
    # 重新安装依赖
    npm install
    # 安卓端清理构建缓存
    cd android && ./gradlew clean && cd ..
    # 清空Metro缓存启动服务
    npx react-native start --reset-cache
    # 新开终端重新运行安卓应用
    npx react-native run-android
    
  • 第二步:如果清缓存后仍然报错,强制统一所有Picker依赖的版本
    如果你使用yarn作为包管理器,在package.json根节点添加如下配置:
    "resolutions": {
      "@react-native-community/picker": "npm:@react-native-picker/picker@^2.1.0"
    }
    
    如果你使用npm 8.3及以上版本,在package.json根节点添加如下配置:
    "overrides": {
      "@react-native-community/picker": "npm:@react-native-picker/picker@^2.1.0"
    }
    
    添加配置后重新执行第一步的清理、重装依赖流程即可。
  • 第三步:如果仍有冲突,检查其他依赖Picker的包版本
    你项目中安装的react-native-picker-select旧版本同样依赖@react-native-community/picker,可以将其升级到最新兼容@react-native-picker/picker的版本,或者通过上述resolutions/overrides配置强制统一版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:06:06