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

React Native 0.63.3 Android非debug构建无法正常加载JS bundle问题

问题根源

RN 0.63.x版本的安卓构建逻辑中,默认只从app/src/main/assets/目录加载JS bundle,bundleJsAndAssets任务生成的变体专属bundle存放在build目录下,不会被自动识别加载。

解决方案1(无需修改Java代码,推荐)

步骤1:修改app/build.gradle的react配置块

为每个非debug变体指定bundle输出路径到对应变体的专属资源目录,保留原有配置(如enableHermes等)即可:

project.ext.react = [
    // 原有配置不变,新增以下内容
    jsBundleDirRelease: "$projectDir/src/release/assets/",
    jsBundleDirDev: "$projectDir/src/dev/assets/",
    jsBundleDirAlphaRelease: "$projectDir/src/alphaRelease/assets/",
    resourcesDirRelease: "$projectDir/src/release/res/",
    resourcesDirDev: "$projectDir/src/dev/res/",
    resourcesDirAlphaRelease: "$projectDir/src/alphaRelease/res/",
]

步骤2:配置构建变体的资源目录

在同一个app/build.gradle的android块下添加sourceSets配置,原有配置(compileSdk、buildTypes、productFlavors等)保持不变:

android {
    // 原有配置不变,新增以下内容
    sourceSets {
        release {
            assets.srcDirs = ['src/release/assets']
        }
        dev {
            assets.srcDirs = ['src/dev/assets']
        }
        alphaRelease {
            assets.srcDirs = ['src/alphaRelease/assets']
        }
    }
}

步骤3:清理旧文件

删除之前手动生成的app/src/main/assets/index.android.bundle文件,避免构建时优先加载旧文件。

解决方案2(修改加载逻辑,适配build目录现有bundle)

如果不想调整gradle配置,可以直接修改MainApplication.java中的bundle加载逻辑,动态读取对应变体build目录下的bundle:

import com.facebook.react.BuildConfig;

public class MainApplication extends Application implements ReactApplication {
    // 保留原有代码,新增以下重写方法
    @Override
    protected String getJSBundleFile() {
        if (BuildConfig.DEBUG) {
            return super.getJSBundleFile();
        }
        String variant = BuildConfig.FLAVOR + BuildConfig.BUILD_TYPE;
        return getApplicationInfo().dataDir + "/cache/" + variant.toLowerCase() + "/index.android.bundle";
    }
}

验证方法

执行./gradlew clean assembleAlphaRelease构建安装,无需手动执行bundle命令即可正常运行。

内容的提问来源于stack exchange,提问作者Esben von Buchwald

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:15:05