React Native 构建成功却安装旧版本,如何安装最新版本?
解决React Native应用安装后显示旧版本的问题
看起来你碰到的核心问题是react-native run-android执行时,JS资产打包步骤被跳过,导致设备上运行的还是旧代码。既然AVD能正常跑最新版本,那大概率是缓存或者打包触发机制出了问题,试试下面这些针对性的解决方案:
1. 强制触发JS资产打包
直接绕开自动判断逻辑,强制执行打包和安装:
# 方案一:带参数强制打包 react-native run-android --variant=debug --no-packager # 方案二:先单独打包再安装 react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/ react-native run-android
2. 彻底清理缓存
缓存是旧代码残留的重灾区,全方位清一遍:
- 清理React Native的JS缓存:
npm start -- --reset-cache # 如果用yarn的话换成这个 yarn start --reset-cache
- 清理Android Gradle的构建缓存:
cd android ./gradlew clean cd ..
清理完成后再重新执行react-native run-android
3. 关闭Gradle离线模式
如果Gradle开启了离线模式,会复用旧的构建产物,导致新代码没被打包:
- 打开Android Studio,进入
File > Settings > Build, Execution, Deployment > Build Tools > Gradle,确保Offline work选项未勾选 - 或者直接用命令行禁用离线构建:
cd android ./gradlew assembleDebug --no-offline cd ..
4. 手动删除旧打包文件
如果上面的方法都没效果,直接删掉生成的bundle文件,让系统重新生成:
- 找到
android/app/src/main/assets/index.android.bundle文件删除 - 删掉
android/app/src/main/res/目录下所有以drawable-开头的文件夹里的静态资源 - 之后再执行
react-native run-android
5. 清理设备端调试缓存
如果是在物理设备上运行,设备本身可能缓存了旧JS代码:
- 打开应用,摇一摇设备(或用快捷键Ctrl+M/Command+M)调出调试菜单
- 选择Dev Settings,点击Clear Cache,之后重启应用
你可以从第一点开始尝试,一步步排查,应该能解决旧版本残留的问题。
内容的提问来源于stack exchange,提问作者Christopher Littlewood
相关产品推荐
相关产品推荐

