在热更新动态加载bundle 文件会出现程序未注册的情况,原因是动态加载bundle文件的时候没有将bundle加载进去,还是原来MainApplication加载的bundle文件,从而导致出现app应用程序未注册的情况
解决办法:重新设置一下bundle路径
private void setJSBundle(ReactInstanceManager instanceManager, String latestJSBundleFile) throws IllegalAccessException { try { JSBundleLoader latestJSBundleLoader; if (latestJSBundleFile.toLowerCase().startsWith("assets://")) { latestJSBundleLoader = JSBundleLoader.createAssetLoader(getApplicationContext(), latestJSBundleFile, false); } else { latestJSBundleLoader = JSBundleLoader.createFileLoader(latestJSBundleFile); } Field bundleLoaderField = instanceManager.getClass().getDeclaredField("mBundleLoader"); bundleLoaderField.setAccessible(true); bundleLoaderField.set(instanceManager, latestJSBundleLoader); } catch (Exception e) { throw new IllegalAccessException("Could not setJSBundle"); } }