diff --git a/android/src/main/java/cn/reactnative/modules/update/UpdateModule.java b/android/src/main/java/cn/reactnative/modules/update/UpdateModule.java index b07fd6f..02befd0 100644 --- a/android/src/main/java/cn/reactnative/modules/update/UpdateModule.java +++ b/android/src/main/java/cn/reactnative/modules/update/UpdateModule.java @@ -124,15 +124,15 @@ public class UpdateModule extends ReactContextBaseJavaModule{ Application application = activity.getApplication(); ReactInstanceManager instanceManager = ((ReactApplication) application).getReactNativeHost().getReactInstanceManager(); - if (instanceManager.getClass().getSimpleName().equals("XReactInstanceManagerImpl")) { - JSBundleLoader loader = JSBundleLoader.createFileLoader(UpdateContext.getBundleUrl(application)); - Field jsBundleField = instanceManager.getClass().getDeclaredField("mBundleLoader"); - jsBundleField.setAccessible(true); - jsBundleField.set(instanceManager, loader); - } else { + try { Field jsBundleField = instanceManager.getClass().getDeclaredField("mJSBundleFile"); jsBundleField.setAccessible(true); jsBundleField.set(instanceManager, UpdateContext.getBundleUrl(application)); + } catch (Throwable err) { + JSBundleLoader loader = JSBundleLoader.createFileLoader(UpdateContext.getBundleUrl(application)); + Field loadField = instanceManager.getClass().getDeclaredField("mBundleLoader"); + loadField.setAccessible(true); + loadField.set(instanceManager, loader); } final Method recreateMethod = instanceManager.getClass().getMethod("recreateReactContextInBackground"); diff --git a/package.json b/package.json index 23a3591..ef253b4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-update", - "version": "4.0.0", + "version": "4.0.2", "description": "react-native hot update", "main": "lib/index.js", "scripts": {