diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeSoLoader.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeSoLoader.kt index 07d99609a71..e772b3c57df 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeSoLoader.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeSoLoader.kt @@ -35,6 +35,7 @@ internal object BridgeSoLoader { @get:JvmStatic @get:JvmName("isInitialized") + @Volatile var initialized: Boolean = false private set } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicNative.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicNative.kt index edb2b3f951d..e8ceb6dc500 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicNative.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicNative.kt @@ -9,6 +9,7 @@ package com.facebook.react.bridge import com.facebook.jni.HybridClassBase import com.facebook.proguard.annotations.DoNotStripAny +import com.facebook.soloader.SoLoader /** * An implementation of [Dynamic] that has a C++ implementation. @@ -48,7 +49,7 @@ private class DynamicNative : HybridClassBase(), Dynamic { private companion object { init { - ReactNativeJniCommonSoLoader.staticInit() + SoLoader.loadLibrary("reactnativejni_common") } } } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArray.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArray.kt index 26f2bee21f9..e75ce7964d5 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArray.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArray.kt @@ -9,6 +9,7 @@ package com.facebook.react.bridge import com.facebook.jni.HybridClassBase import com.facebook.proguard.annotations.DoNotStrip +import com.facebook.soloader.SoLoader /** Base class for an array whose members are stored in native code (C++). */ @DoNotStrip @@ -19,7 +20,7 @@ public abstract class NativeArray protected constructor() : private companion object { init { - ReactNativeJniCommonSoLoader.staticInit() + SoLoader.loadLibrary("reactnativejni_common") } } } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeMap.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeMap.kt index 33036c358d2..22bed164f52 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeMap.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeMap.kt @@ -9,6 +9,7 @@ package com.facebook.react.bridge import com.facebook.jni.HybridClassBase import com.facebook.proguard.annotations.DoNotStrip +import com.facebook.soloader.SoLoader /** Base class for a Map whose keys and values are stored in native code (C++). */ @DoNotStrip @@ -17,7 +18,7 @@ public abstract class NativeMap : HybridClassBase() { private companion object { init { - ReactNativeJniCommonSoLoader.staticInit() + SoLoader.loadLibrary("reactnativejni_common") } } } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarker.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarker.java index 54023b917d5..7d704ee744b 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarker.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarker.java @@ -211,7 +211,7 @@ public class ReactMarker { now = SystemClock.uptimeMillis(); } - if (ReactNativeJniCommonSoLoader.isInitialized()) { + if (BridgeSoLoader.isInitialized()) { // First send the current marker nativeLogMarker(name.name(), now); diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJniCommonSoLoader.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJniCommonSoLoader.kt deleted file mode 100644 index 66fdefe9f1f..00000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJniCommonSoLoader.kt +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -package com.facebook.react.bridge - -import com.facebook.soloader.SoLoader - -internal object ReactNativeJniCommonSoLoader { - - @JvmStatic - @Synchronized - fun staticInit() { - if (initialized) { - return - } - ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_START) - SoLoader.loadLibrary("reactnativejni_common") - ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_END) - initialized = true - } - - @get:JvmStatic - @get:JvmName("isInitialized") - @Volatile - var initialized: Boolean = false - private set -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/annotations/internal/LegacyArchitectureLogger.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/annotations/internal/LegacyArchitectureLogger.kt index 8156aa99970..b932403ccb7 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/annotations/internal/LegacyArchitectureLogger.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/annotations/internal/LegacyArchitectureLogger.kt @@ -62,7 +62,7 @@ public object LegacyArchitectureLogger { } LegacyArchitectureLogLevel.WARNING -> { ReactSoftExceptionLogger.logSoftException( - tag, ReactNoCrashSoftException("$name $exceptionMessage")) + tag, ReactNoCrashSoftException("$name $exceptionMessage.")) } } } diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt b/packages/react-native/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt index f315cca6dd1..5840cc97050 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +++ b/packages/react-native/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt @@ -24,11 +24,10 @@ add_library( reactnativejni_common OBJECT JDynamicNative.cpp - JReactMarker.cpp NativeArray.cpp NativeCommon.cpp NativeMap.cpp - OnLoad-common.cpp + OnLoad-common.cpp ReadableNativeArray.cpp ReadableNativeMap.cpp WritableNativeArray.cpp @@ -37,7 +36,7 @@ add_library( target_merge_so(reactnativejni_common) target_include_directories(reactnativejni_common PUBLIC ../../) -target_link_libraries(reactnativejni_common fbjni folly_runtime react_cxxreact) +target_link_libraries(reactnativejni_common fbjni folly_runtime) target_compile_reactnative_options(reactnativejni_common PRIVATE) target_compile_options(reactnativejni_common PRIVATE -Wno-unused-lambda-capture) @@ -56,6 +55,7 @@ add_library( JInspector.cpp JMessageQueueThread.cpp JReactCxxErrorHandler.cpp + JReactMarker.cpp JReactSoftExceptionLogger.cpp JRuntimeExecutor.cpp JRuntimeScheduler.cpp diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/jni/OnLoad-common.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/jni/OnLoad-common.cpp index 293d2ffc8ab..a72b4dffcb1 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/jni/OnLoad-common.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/jni/OnLoad-common.cpp @@ -8,7 +8,6 @@ #include #include "JCallback.h" #include "JDynamicNative.h" -#include "JReactMarker.h" #include "NativeArray.h" #include "NativeMap.h" #include "WritableNativeArray.h" @@ -20,7 +19,6 @@ extern "C" JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) { return facebook::jni::initialize(vm, [] { JCxxCallbackImpl::registerNatives(); JDynamicNative::registerNatives(); - JReactMarker::registerNatives(); NativeArray::registerNatives(); NativeMap::registerNatives(); ReadableNativeArray::registerNatives(); diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp index 1604b82044a..42b66bc3df2 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp @@ -16,6 +16,7 @@ #include "CxxModuleWrapperBase.h" #include "InspectorNetworkRequestListener.h" #include "JInspector.h" +#include "JReactMarker.h" #include "JavaScriptExecutorHolder.h" #include "ReactInstanceManagerInspectorTarget.h" @@ -41,6 +42,7 @@ extern "C" JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) { #endif CatalystInstanceImpl::registerNatives(); CxxModuleWrapperBase::registerNatives(); + JReactMarker::registerNatives(); JInspector::registerNatives(); ReactInstanceManagerInspectorTarget::registerNatives(); InspectorNetworkRequestListener::registerNatives();