尝试热更新,第一步就出问题。求助



  • 最近在给项目集成 rn,同时在考虑实现热部署。看了网上的几篇文章也自觉应该是可以了。成功的打出了 bundle 包,和 apk 签名包之后准备继续最重要的一步,那就是在页面加载的时候使用本地 bundle。
    我选择的方案是通过ReactInstanceManager.builder()的setJSBundleFile方法来设置加载的 bundle 文件实现应用重启之后加载最新的更新文件。代码如下
    String localBundlePath = _mActivity.getFilesDir().getAbsolutePath() + "/react_bundle/index.android.bundle";
    LogUtils.d("test", "localBundlePath:" + localBundlePath);
    File mFile = new File(localBundlePath);
    boolean isLocal = false;
    // 若该文件存在
    if (mFile.exists()) {
    LogUtils.d("test", "执行getLocalBundle");
    isLocal = true;
    } else {
    isLocal = false;
    LogUtils.d("test", "执行getAssetsBundle");
    }
    mReactInstanceManager = ReactInstanceManager.builder()
    .setApplication(MyApplication.getInstance())
    .setJSBundleFile(isLocal?localBundlePath:"assets://index.android.bundle")
    .setJSMainModuleName("index.android")
    .addPackage(new MainReactPackage())
    .setUseDeveloperSupport(BuildConfig.DEBUG)
    .setInitialLifecycleState(LifecycleState.RESUMED)
    .build();
    mReactRootView.startReactApplication(mReactInstanceManager, "seller", null);
    return mReactRootView;

    但是在满心期待之后运行代码之后确一直报错,错误如下
    0_1469092658142_错误.png
    这个错误在kaika开发模式下是我能够很简单的解决,但是在签名包的情况下就有些茫然了。

    【如果有遇到过这种问题的请给个帮助,或者给我个思路】


登录后回复