React Native升级支持Android API 30时依赖库冲突问题求助
React Native 升级到支持Android API 30 操作步骤
核心问题原因
当前报错是因为你项目中使用的@react-native-community/async-storage@1.8.1版本仅兼容React 16.x,升级到目标React 17.0.2后触发peer依赖校验失败,且跨4个次版本的RN自动升级会存在原生配置diff失败的问题,可按以下步骤处理:
1. 清理本地缓存
执行以下命令清理历史依赖残留:
rm -rf node_modules package-lock.json yarn.lock npm cache clean --force
2. 调整package.json依赖配置
2.1 替换已更名/不兼容的核心依赖
将旧版已停止维护的社区包替换为适配RN 0.65+的版本:
- 删除
"@react-native-community/async-storage": "^1.8.1",新增"@react-native-async-storage/async-storage": "^1.17.11" - 删除
"@react-native-community/masked-view": "^0.1.7",新增"@react-native-masked-view/masked-view": "^0.2.7" - 将
@react-native-community/checkbox升级到^0.5.15 - 将
@react-native-community/datetimepicker升级到^3.5.2 - 把react、react-native版本修改为目标值:
"react": "17.0.2", "react-native": "0.65.1"
2.2 调整代码导入路径
全局替换所有async-storage的导入语句:
将import AsyncStorage from '@react-native-community/async-storage'
修改为import AsyncStorage from '@react-native-async-storage/async-storage'
3. 安装依赖
执行以下命令安装依赖,--legacy-peer-deps用于忽略部分未更新peer依赖声明但实际兼容React 17的第三方包校验:
npm install --legacy-peer-deps
如果安装过程仍有其他依赖冲突,根据报错提示查询对应包支持RN 0.65的版本,升级对应包即可。
4. 手动调整原生配置
由于自动diff失败,需要手动修改原生配置满足API 30要求:
- 打开
android/build.gradle文件,修改以下配置:compileSdkVersion = 30 targetSdkVersion = 30 buildToolsVersion = "30.0.3" - 对比RN 0.61.5和0.65.1的官方模板原生文件,逐一调整android、ios目录下的配置差异(如AndroidManifest.xml、Podfile、iOS编译配置等)
5. 验证升级结果
- 执行
npx react-native run-android启动项目,确认打包正常 - 测试核心业务功能,重点验证存储、原生模块调用等逻辑是否正常
- 若出现运行时错误,根据报错信息调整对应依赖版本或做代码兼容即可
内容的提问来源于stack exchange,提问作者user3453552
相关产品推荐
相关产品推荐

