From 5c23769b6658d0108b75c8cf912f87bef5d659de Mon Sep 17 00:00:00 2001 From: Seongjin Cho Date: Mon, 22 Aug 2022 16:51:38 +0900 Subject: [PATCH] Ignore fields in Android BuildConfig whose values are unsupported by React Native. --- .../ReactNativeConfig/ReactNativeConfigModule.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/lugg/ReactNativeConfig/ReactNativeConfigModule.java b/android/src/main/java/com/lugg/ReactNativeConfig/ReactNativeConfigModule.java index cbcb4851..17da8da7 100644 --- a/android/src/main/java/com/lugg/ReactNativeConfig/ReactNativeConfigModule.java +++ b/android/src/main/java/com/lugg/ReactNativeConfig/ReactNativeConfigModule.java @@ -4,12 +4,14 @@ import android.content.res.Resources; import android.util.Log; +import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import java.lang.ClassNotFoundException; import java.lang.IllegalAccessException; import java.lang.reflect.Field; +import java.util.List; import java.util.Map; import java.util.HashMap; @@ -40,11 +42,17 @@ public Map getConstants() { Field[] fields = clazz.getDeclaredFields(); for(Field f: fields) { try { - constants.put(f.getName(), f.get(null)); + Object value = f.get(null); + // Make sure that the value is supported by RN. + Arguments.fromList(List.of(value)); + constants.put(f.getName(), value); } catch (IllegalAccessException e) { Log.d("ReactNative", "ReactConfig: Could not access BuildConfig field " + f.getName()); } + catch (IllegalArgumentException e) { + Log.d("ReactNative", "ReactConfig: Unsupported BuildConfig field type " + f.getName()); + } } } catch (ClassNotFoundException e) {