From cb448663c6e457231facb488e9ed83d0d8d75ffd Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Fri, 9 Oct 2026 00:53:13 -0700 Subject: [PATCH] Use umbrella includes in Android app-facing C++ (#58843) Summary: Pull Request resolved: https://github.com/react/react-native/pull/58843 App-facing C++ on Android included guarded ReactCommon headers directly, which is a hard error in app code under `RN_STRICT_API`. The default app `OnLoad.cpp` (and RN-Tester's), the generated `autolinking.h`, and the prefab-exported JNI headers in the `newarchdefaults`, `turbomodule` and `jni` packages now include React Native through module umbrellas (``, ``, ``, ``). `FabricMountingManager.h` also drops an unused include of `react/renderer/uimanager/primitives.h`. The `fabric`, `mapbuffer` and `DefaultComponentsRegistry.h` headers are handled in the parent diff. No behaviour change without `RN_STRICT_API`. Changelog: [Android][Changed] - Include React Native through module umbrella headers in app-facing JNI headers and the generated autolinking header Reviewed By: cipolleschi Differential Revision: D123376722 --- .../tasks/GenerateAutolinkingNewArchitecturesFileTask.kt | 7 +++---- .../ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp | 2 +- .../src/main/jni/react/fabric/FabricMountingManager.h | 1 - .../ReactAndroid/src/main/jni/react/jni/JRuntimeExecutor.h | 2 +- .../newarchdefaults/DefaultTurboModuleManagerDelegate.h | 3 +-- .../turbomodule/ReactCommon/BindingsInstallerHolder.h | 4 ++-- .../jni/react/turbomodule/ReactCommon/CallInvokerHolder.h | 2 +- .../ReactCommon/NativeMethodCallInvokerHolder.h | 2 +- .../jni/react/turbomodule/ReactCommon/TurboModuleManager.h | 5 ++--- .../turbomodule/ReactCommon/TurboModuleManagerDelegate.h | 4 ++-- packages/rn-tester/android/app/src/main/jni/OnLoad.cpp | 2 +- 11 files changed, 15 insertions(+), 19 deletions(-) diff --git a/packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/tasks/GenerateAutolinkingNewArchitecturesFileTask.kt b/packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/tasks/GenerateAutolinkingNewArchitecturesFileTask.kt index 3301946072f7..068737880a96 100644 --- a/packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/tasks/GenerateAutolinkingNewArchitecturesFileTask.kt +++ b/packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/tasks/GenerateAutolinkingNewArchitecturesFileTask.kt @@ -266,11 +266,10 @@ abstract class GenerateAutolinkingNewArchitecturesFileTask : DefaultTask() { #pragma once - #include - #include - #include + #include + #include + #include #include - #include namespace facebook { namespace react { diff --git a/packages/react-native/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp b/packages/react-native/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp index 3e0915c8304b..f79eb1a45512 100644 --- a/packages/react-native/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +++ b/packages/react-native/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp @@ -30,9 +30,9 @@ #include #include #include +#include #include #include -#include #ifdef REACT_NATIVE_APP_CODEGEN_HEADER #include REACT_NATIVE_APP_CODEGEN_HEADER diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h index 826449cee4fe..5a7fbc5ff001 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h @@ -13,7 +13,6 @@ #include #include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/jni/JRuntimeExecutor.h b/packages/react-native/ReactAndroid/src/main/jni/react/jni/JRuntimeExecutor.h index 9caffec9c434..9c0fe9dbda66 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/jni/JRuntimeExecutor.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/jni/JRuntimeExecutor.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include namespace facebook::react { diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultTurboModuleManagerDelegate.h b/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultTurboModuleManagerDelegate.h index c8f87d39ce91..dc5dd8989506 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultTurboModuleManagerDelegate.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultTurboModuleManagerDelegate.h @@ -9,9 +9,8 @@ #include #include +#include #include -#include -#include #include #include diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/BindingsInstallerHolder.h b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/BindingsInstallerHolder.h index 1ca58bba4399..6501f4fc7094 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/BindingsInstallerHolder.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/BindingsInstallerHolder.h @@ -7,8 +7,8 @@ #pragma once -#include -#include +#include +#include #include namespace facebook::react { diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CallInvokerHolder.h b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CallInvokerHolder.h index ca1fd0ff3e39..f0a6eda8d8f8 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CallInvokerHolder.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CallInvokerHolder.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include #include diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/NativeMethodCallInvokerHolder.h b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/NativeMethodCallInvokerHolder.h index b6f9b1aed4c4..d54b493e45fa 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/NativeMethodCallInvokerHolder.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/NativeMethodCallInvokerHolder.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include #include diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h index 0cc6a096436e..375bbfd4b91f 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h @@ -12,11 +12,10 @@ #include #include +#include +#include #include -#include #include -#include -#include #include #include diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManagerDelegate.h b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManagerDelegate.h index ce7ac58fa364..6dfd3c996037 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManagerDelegate.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManagerDelegate.h @@ -7,8 +7,8 @@ #pragma once -#include -#include +#include +#include #include #include #include diff --git a/packages/rn-tester/android/app/src/main/jni/OnLoad.cpp b/packages/rn-tester/android/app/src/main/jni/OnLoad.cpp index 72d62fb09590..c54faffa30ee 100644 --- a/packages/rn-tester/android/app/src/main/jni/OnLoad.cpp +++ b/packages/rn-tester/android/app/src/main/jni/OnLoad.cpp @@ -9,9 +9,9 @@ #include #include #include +#include #include #include -#include #ifdef REACT_NATIVE_APP_CODEGEN_HEADER #include REACT_NATIVE_APP_CODEGEN_HEADER