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

React Native执行./gradlew assembleRelease打包APK时JS代码未更新的疑问

React Native 打包Release APK时JS代码不更新的解决方案

不是必须每次打包都手动执行那两条命令,问题出在默认的assembleRelease流程没有正确触发JS bundle的重新生成,或者旧的资源缓存没有被清理。

为什么手动执行那两条命令有用?

  • 第一条命令npx react-native bundle ...是强制生成最新的JS bundle文件和资源文件,直接覆盖旧的bundle;
  • 第二条命令rm -rf ...是清理之前bundle生成的旧资源文件(比如drawable目录下的缓存图片、raw目录下的旧bundle残留),避免这些旧资源被打包进APK。

如何让./gradlew assembleRelease自动处理,不用手动操作?

  • 检查gradle依赖关联:确保app/build.gradle中,assembleRelease任务依赖于bundleReleaseJsAndAssets任务。大部分React Native版本会自动配置,但如果你的项目被修改过,可能需要手动添加:
    project.afterEvaluate {
        assembleRelease.dependsOn(bundleReleaseJsAndAssets)
    }
    
  • 清理gradle缓存:如果gradle缓存导致bundle没有重新生成,可以执行./gradlew cleanBuildCache,比单纯的./gradlew clean更彻底;
  • 避免手动bundle文件残留:如果你之前手动生成过index.android.bundle到assets目录,gradle可能会优先使用这个文件而不是重新生成。建议把android/app/src/main/assets/index.android.bundle和android/app/src/main/res/drawable-*、android/app/src/main/res/raw/*相关缓存目录加入项目的.gitignore,避免这些文件被提交或残留。

什么时候需要手动执行那两条命令?

只有在遇到gradle配置异常、缓存彻底混乱,或者修改了React Native打包核心配置(比如entry文件路径、bundle输出目录)的情况下,才需要手动执行一次来重置状态,日常正常打包不需要每次都做。

内容的提问来源于stack exchange,提问作者dev-arjun

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 10:52:11