1 // Copyright © 2021-present 650 Industries, Inc. (aka Expo) 2 3 #include "JSIInteropModuleRegistry.h" 4 #include "JavaScriptModuleObject.h" 5 #include "JavaScriptValue.h" 6 #include "JavaScriptObject.h" 7 #include "JavaScriptFunction.h" 8 #include "JavaScriptTypedArray.h" 9 #include "JavaReferencesCache.h" 10 #include "JavaCallback.h" 11 #include "types/FrontendConverterProvider.h" 12 13 #if RN_FABRIC_ENABLED 14 #include "FabricComponentsRegistry.h" 15 #endif 16 17 #include <jni.h> 18 #include <fbjni/fbjni.h> 19 20 // Install all jni bindings JNI_OnLoad(JavaVM * vm,void *)21JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) { 22 return facebook::jni::initialize(vm, [] { 23 // Loads references to often use Java classes 24 expo::JavaReferencesCache::instance()->loadJClasses(jni::Environment::current()); 25 expo::FrontendConverterProvider::instance()->createConverters(); 26 27 expo::JSIInteropModuleRegistry::registerNatives(); 28 expo::JavaScriptModuleObject::registerNatives(); 29 expo::JavaScriptValue::registerNatives(); 30 expo::JavaScriptObject::registerNatives(); 31 expo::JavaScriptFunction::registerNatives(); 32 expo::JavaScriptTypedArray::registerNatives(); 33 expo::JavaCallback::registerNatives(); 34 #if RN_FABRIC_ENABLED 35 expo::FabricComponentsRegistry::registerNatives(); 36 #endif 37 }); 38 } 39