Browse Source

Improve error handling settingup DevSupportHandler

Guy Carmeli 8 years ago
parent
commit
956a524972

+ 15
- 3
android/app/src/main/java/com/reactnativenavigation/core/RctManager.java View File

@@ -89,18 +89,30 @@ public class RctManager {
89 89
         final ReactInstanceDevCommandsHandler devInterface = (ReactInstanceDevCommandsHandler)
90 90
                 ReflectionUtils.getDeclaredField(reactInstanceManager, "mDevInterface");
91 91
         if (devInterface == null) {
92
-            Log.e(TAG, "Could not get field: mDevInterface");
92
+            Log.e(TAG, "Could not get field mDevInterface");
93 93
             return;
94 94
         }
95 95
 
96 96
         // Create customDevCommandsHandler
97 97
         CustomDevCommandsHandler customDevCommandsHandler = new CustomDevCommandsHandler(devInterface);
98
-        ReflectionUtils.setField(reactInstanceManager, "mDevInterface", customDevCommandsHandler);
98
+        boolean success = ReflectionUtils.setField(reactInstanceManager, "mDevInterface", customDevCommandsHandler);
99
+        if (!success) {
100
+            Log.e(TAG, "Could not set field mDevInterface");
101
+            return;
102
+        }
99 103
 
100 104
         // Set customDevCommandsHandler in devSupportManager. Fun =).
101 105
         DevSupportManager devSupportManager = (DevSupportManager)
102 106
                 ReflectionUtils.getDeclaredField(reactInstanceManager, "mDevSupportManager");
103
-        ReflectionUtils.setField(devSupportManager, "mReactInstanceCommandsHandler", customDevCommandsHandler);
107
+        if (devSupportManager == null) {
108
+            Log.e(TAG, "Could not get field mDevSupportManager");
109
+            return;
110
+        }
111
+
112
+        success = ReflectionUtils.setField(devSupportManager, "mReactInstanceCommandsHandler", customDevCommandsHandler);
113
+        if (!success) {
114
+            Log.e(TAG, "Could not set field mReactInstanceCommandsHandler");
115
+        }
104 116
     }
105 117
 
106 118
     public <T extends ReactContextBaseJavaModule> T getNativeModule(Class<T> nativeModuleClass) {

+ 1
- 1
android/app/src/main/java/com/reactnativenavigation/utils/ReflectionUtils.java View File

@@ -25,7 +25,7 @@ public class ReflectionUtils {
25 25
         try {
26 26
             Field f = obj.getClass().getDeclaredField(fieldName);
27 27
             f.setAccessible(true);
28
-            return f.get(obj); //IllegalAccessException
28
+            return f.get(obj);
29 29
         } catch (Exception e) {
30 30
             e.printStackTrace();
31 31
         }