From 32793f2e4de390617de9f57c1048d60b1d3822b3 Mon Sep 17 00:00:00 2001 From: Oskar Eichler Date: Sun, 30 Aug 2026 10:53:23 +0200 Subject: [PATCH] fix: correct Android native registration guidance --- example/src/getTests.ts | 18 ++++++++++++++++++ .../android/createHybridObjectInitializer.ts | 4 ++-- .../cpp/registry/HybridObjectRegistry.cpp | 2 +- .../android/NitroTestExternalOnLoad.hpp | 4 ++-- .../generated/android/NitroTestOnLoad.hpp | 4 ++-- 5 files changed, 25 insertions(+), 7 deletions(-) diff --git a/example/src/getTests.ts b/example/src/getTests.ts index 06e951217b..b85168e6fa 100644 --- a/example/src/getTests.ts +++ b/example/src/getTests.ts @@ -2585,6 +2585,24 @@ export function getTests( .didNotThrow() .equals(true) ), + createTest( + 'NitroModules.createHybridObject(...) error names registerAllNatives()', + () => + it(() => { + try { + NitroModules.createHybridObject('__MissingHybridObjectForTest__') + return false + } catch (error) { + return ( + error instanceof Error && + error.message.includes('registerAllNatives()') && + !error.message.includes('::registerNatives()') + ) + } + }) + .didNotThrow() + .equals(true) + ), createTest('NitroModules.isHybridObject(testObject) to be true', () => it(() => { return NitroModules.isHybridObject(testObject) diff --git a/packages/nitrogen/src/autolinking/android/createHybridObjectInitializer.ts b/packages/nitrogen/src/autolinking/android/createHybridObjectInitializer.ts index a053b25c43..19fdd5074b 100644 --- a/packages/nitrogen/src/autolinking/android/createHybridObjectInitializer.ts +++ b/packages/nitrogen/src/autolinking/android/createHybridObjectInitializer.ts @@ -82,7 +82,7 @@ ${createFileMetadataString(`${autolinkingClassName}.hpp`)} namespace ${cxxNamespace} { - [[deprecated("Use registerNatives() instead.")]] + [[deprecated("Use registerAllNatives() instead.")]] int initialize(JavaVM* vm); /** @@ -94,7 +94,7 @@ namespace ${cxxNamespace} { * JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { * return facebook::jni::initialize(vm, []() { * // register all ${cppLibName} HybridObjects - * ${cxxNamespace}::registerNatives(); + * ${cxxNamespace}::registerAllNatives(); * // any other custom registrations go here. * }); * } diff --git a/packages/react-native-nitro-modules/cpp/registry/HybridObjectRegistry.cpp b/packages/react-native-nitro-modules/cpp/registry/HybridObjectRegistry.cpp index 1002ae0b98..e4b38b0420 100644 --- a/packages/react-native-nitro-modules/cpp/registry/HybridObjectRegistry.cpp +++ b/packages/react-native-nitro-modules/cpp/registry/HybridObjectRegistry.cpp @@ -78,7 +78,7 @@ std::shared_ptr HybridObjectRegistry::createHybridObject(const std "- If you use Nitrogen, make sure your library (*Package.kt)/app (MainApplication.kt) calls " "`$$androidCxxLibName$$OnLoad.initializeNative()` somewhere on app-startup.\n" "- If you use Nitrogen, make sure your `cpp-adapter.cpp`/`OnLoad.cpp` calls " - "`margelo::nitro::$$cxxNamespace$$::registerNatives()` inside `facebook::jni::initialize(...)`.\n" + "`margelo::nitro::$$cxxNamespace$$::registerAllNatives()` inside `facebook::jni::initialize(...)`.\n" "- If you use Nitrogen, inspect the generated `$$androidCxxLibName$$OnLoad.cpp` file.\n" "- If you don't use Nitrogen, make sure you called `HybridObjectRegistry.registerHybridObject(...)`." "- All registered HybridObjects: [" + diff --git a/packages/react-native-nitro-test-external/nitrogen/generated/android/NitroTestExternalOnLoad.hpp b/packages/react-native-nitro-test-external/nitrogen/generated/android/NitroTestExternalOnLoad.hpp index 3a1e706b9a..acd3fcec92 100644 --- a/packages/react-native-nitro-test-external/nitrogen/generated/android/NitroTestExternalOnLoad.hpp +++ b/packages/react-native-nitro-test-external/nitrogen/generated/android/NitroTestExternalOnLoad.hpp @@ -11,7 +11,7 @@ namespace margelo::nitro::test::external { - [[deprecated("Use registerNatives() instead.")]] + [[deprecated("Use registerAllNatives() instead.")]] int initialize(JavaVM* vm); /** @@ -23,7 +23,7 @@ namespace margelo::nitro::test::external { * JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { * return facebook::jni::initialize(vm, []() { * // register all NitroTestExternal HybridObjects - * margelo::nitro::test::external::registerNatives(); + * margelo::nitro::test::external::registerAllNatives(); * // any other custom registrations go here. * }); * } diff --git a/packages/react-native-nitro-test/nitrogen/generated/android/NitroTestOnLoad.hpp b/packages/react-native-nitro-test/nitrogen/generated/android/NitroTestOnLoad.hpp index 7074c177e7..97568fd631 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/android/NitroTestOnLoad.hpp +++ b/packages/react-native-nitro-test/nitrogen/generated/android/NitroTestOnLoad.hpp @@ -11,7 +11,7 @@ namespace margelo::nitro::test { - [[deprecated("Use registerNatives() instead.")]] + [[deprecated("Use registerAllNatives() instead.")]] int initialize(JavaVM* vm); /** @@ -23,7 +23,7 @@ namespace margelo::nitro::test { * JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { * return facebook::jni::initialize(vm, []() { * // register all NitroTest HybridObjects - * margelo::nitro::test::registerNatives(); + * margelo::nitro::test::registerAllNatives(); * // any other custom registrations go here. * }); * }