From 8e4bc1eabb241f95f684f9a62d5a9576ccef81ee Mon Sep 17 00:00:00 2001 From: William Candillon Date: Thu, 22 Aug 2024 15:39:47 +0200 Subject: [PATCH] =?UTF-8?q?fix(=F0=9F=A4=96):=20Fix=20Android=20build=20on?= =?UTF-8?q?=200.75=20(#2586)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package/android/CMakeLists.txt | 2 ++ package/android/build.gradle | 6 ++++-- package/android/cpp/jni/JniSkiaManager.cpp | 13 +++++++++---- .../reactnative/skia/ReactNativeCompatible.java | 0 4 files changed, 15 insertions(+), 6 deletions(-) rename package/android/src/{reactnative69 => latest}/java/com/shopify/reactnative/skia/ReactNativeCompatible.java (100%) diff --git a/package/android/CMakeLists.txt b/package/android/CMakeLists.txt index 0306aaf8a9..03e6cfd03f 100644 --- a/package/android/CMakeLists.txt +++ b/package/android/CMakeLists.txt @@ -220,6 +220,8 @@ else() endif() message("-- TURBO : " ${TURBOMODULES_LIB}) +add_definitions(-DREACT_NATIVE_VERSION=${REACT_NATIVE_VERSION}) + # Link target_link_libraries( ${PACKAGE_NAME} diff --git a/package/android/build.gradle b/package/android/build.gradle index cec3e2f206..1e247574e1 100644 --- a/package/android/build.gradle +++ b/package/android/build.gradle @@ -172,13 +172,15 @@ android { ] } - if (REACT_NATIVE_VERSION >= 74) { + if (REACT_NATIVE_VERSION == 74) { srcDirs += [ "src/reactnative74/java" ] } else { + // the name latest here might be confusing as it applies for versions + // below 74 as well srcDirs += [ - "src/reactnative69/java" + "src/latest/java" ] } } diff --git a/package/android/cpp/jni/JniSkiaManager.cpp b/package/android/cpp/jni/JniSkiaManager.cpp index 9750f7f904..f5218d695a 100644 --- a/package/android/cpp/jni/JniSkiaManager.cpp +++ b/package/android/cpp/jni/JniSkiaManager.cpp @@ -20,12 +20,17 @@ class BridgelessJSCallInvoker : public facebook::react::CallInvoker { facebook::react::RuntimeExecutor runtimeExecutor) : runtimeExecutor_(std::move(runtimeExecutor)) {} - void invokeAsync(std::function &&func) noexcept override { - runtimeExecutor_( - [func = std::move(func)](facebook::jsi::Runtime &runtime) { func(); }); + void invokeAsync(facebook::react::CallFunc &&func) noexcept override { + runtimeExecutor_([func = std::move(func)](facebook::jsi::Runtime &runtime) { +#if REACT_NATIVE_VERSION >= 75 + func(runtime); +#else + func(); +#endif + }); } - void invokeSync(std::function &&func) override { + void invokeSync(facebook::react::CallFunc &&func) override { throw std::runtime_error( "Synchronous native -> JS calls are currently not supported."); } diff --git a/package/android/src/reactnative69/java/com/shopify/reactnative/skia/ReactNativeCompatible.java b/package/android/src/latest/java/com/shopify/reactnative/skia/ReactNativeCompatible.java similarity index 100% rename from package/android/src/reactnative69/java/com/shopify/reactnative/skia/ReactNativeCompatible.java rename to package/android/src/latest/java/com/shopify/reactnative/skia/ReactNativeCompatible.java