You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

React Native打包Android Release APK生成旧版本问题及解决方法

React Native Android Release APK 未包含最新更改的解决方案

我前段时间碰到了一模一样的问题:严格按照官方文档生成Android正式版APK,上传到Google Play后用户看到的还是旧版本功能,本地运行react-native run-android --variant=release也只输出旧包,但调试模式下新功能完全正常。试了其他办法还触发了重复资源错误,折腾好久终于找到一个有效的解决办法——这个方案来自React Native官方GitHub Issues,亲测多次有效,步骤如下:

具体解决步骤

1. 修改react.gradle配置

找到项目目录下的node_modules/react-native/react.gradle文件,定位到里面的doFirst代码块,在它后面添加这段代码:

doLast {
    def moveFunc = { resSuffix ->
        File originalDir = file("$buildDir/generated/res/react/release/drawable-${resSuffix}");
        if (originalDir.exists()) {
            File destDir = file("$buildDir/../src/main/res/drawable-${resSuffix}");
            ant.move(file: originalDir, tofile: destDir);
        }
    }
    moveFunc.curry("ldpi").call()
    moveFunc.curry("mdpi").call()
    moveFunc.curry("hdpi").call()
    moveFunc.curry("xhdpi").call()
    moveFunc.curry("xxhdpi").call()
    moveFunc.curry("xxxhdpi").call()
}

2. 执行打包准备命令

打开终端,依次运行以下命令:

cd android
./gradlew bundleRelease
cd ..
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

3. 生成最新的Release APK

最后运行这条命令,就能得到带有所有最新更改的正式版APK了:

react-native run-android --variant=release

我反复试了好几次这个流程,每次都能成功生成包含新功能的APK,之前的问题彻底解决了。

内容的提问来源于stack exchange,提问作者Pavan Akshay Abhange

火山引擎 最新活动