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

React Native 多次执行CodePush后Android端图片资源不显示问题

问题根因

这是react-native-code-push框架的已知路径缓存问题,触发逻辑如下:

  • 首次热更新时,CodePush会正确将App静态资源寻址的根路径替换为下载的热更新包目录,因此图片加载正常
  • 第二次及后续热更新时,v5.x~v7.x版本的CodePush不会主动清除上一次热更新的路径缓存,导致App仍从已失效的旧热更新目录请求图片资源,自然无法加载
  • 清除App缓存后,路径缓存被清空,首次热更新时重新绑定正确路径,因此恢复正常

修复方案

方案1:升级CodePush版本

直接将react-native-code-push升级到v8.2.1及以上稳定版,该版本官方已经修复了路径缓存不更新的bug,是成本最低的解决方案。

方案2:禁用增量更新

如果项目依赖不允许升级CodePush版本,打包热更新包时添加--no-incremental参数强制打全量包,参考命令:
appcenter codepush release-react -a <你的应用标识> -d <部署环境> --no-incremental
全量更新会强制替换整个热更新目录,不会残留旧路径缓存。

方案3:主动重置应用上下文

在CodePush更新成功的回调中,强制调用重启方法清空缓存,参考代码:

codePush.sync({
  updateDialog: true,
  installMode: codePush.InstallMode.IMMEDIATE
}, (status) => {
  if (status === codePush.SyncStatus.UPDATE_INSTALLED) {
    codePush.restartApp(true);
  }
});

验证方法

先打一个带--no-incremental参数的热更新包,连续推送两次更新测试,如果图片可以正常加载,即可确认是增量更新的路径缓存问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:36:03