React Native项目从0.64降级到0.63.4的可行实现方案咨询
React Native 0.64 降级到 0.63.4 实操方案
该方案可将现有RN 0.64项目平滑降级至官方支持minSdkVersion=19的0.63.4版本,实现Android 4.4设备适配,具体操作步骤如下:
- 卸载原有RN依赖包
执行对应包管理工具命令:
npm:npm uninstall react-native react
yarn:yarn remove react-native react - 安装匹配版本的核心依赖
React Native 0.63.4官方兼容的React版本为16.13.1,执行安装命令:
npm:npm install react-native@0.63.4 react@16.13.1 --save
yarn:yarn add react-native@0.63.4 react@16.13.1 - 修改Android原生配置
进入项目android目录,修改根目录下的build.gradle文件:找到
buildscript代码块下的ext配置段,将minSdkVersion的取值从21修改为19,compileSdkVersion、targetSdkVersion保留不低于29的原有配置即可 - 清理缓存并重建项目
按顺序执行以下操作避免缓存导致的异常:- 清理Metro缓存:
npx react-native start --reset-cache - 清理Android构建缓存:进入
android目录,Mac/Linux执行./gradlew clean,Windows执行gradlew clean - (依赖冲突时可选操作)删除根目录下的
node_modules文件夹、package-lock.json或yarn.lock文件,重新执行npm install或yarn install
- 清理Metro缓存:
- 兼容性校验与适配
构建测试包安装到Android 4.4设备运行,排查第三方依赖的适配问题:- 若单个第三方库声明的
minSdkVersion高于19,可在android/app/src/main/AndroidManifest.xml中添加<uses-sdk tools:overrideLibrary="对应第三方库的包名"/>强制适配,适配后必须测试该库的功能是否正常可用 - 若存在大量依赖不兼容Android 4.4,需逐一替换为支持
minSdkVersion=19的对应旧版本
- 若单个第三方库声明的
注意:部分依赖的高版本API在Android 4.4系统上存在缺失,完成降级后必须覆盖全功能场景测试,避免出现运行时崩溃
常见问题处理
- 降级后启动项目红屏报错
Invariant Violation: Module AppRegistry is not a registered callable module:直接删除node_modules文件夹和包管理锁文件,重新安装依赖即可解决 - Android构建时出现
Android resource linking failed错误:将build.gradle中的compileSdkVersion升级至30即可解决
内容的提问来源于stack exchange,提问作者Mohit Sharma
相关产品推荐
相关产品推荐

