0.35.0 (2026-03-04)
❗️ Breaking Change
#1238 is the first breaking change after >1 year in Nitro. Unfortunately it is necessary, as it fixes a critical memory leak in Kotlin HybridObjects.
- For app developers: Try upgrading to Nitro 0.35.x and attempt a build. If it fails due to anything looking like
super.updateNative(...),JHybridObject,HybridBase, orAnyMapHolder, the Nitro library you are using needs to update to Nitro 0.35.x as well and re-generate their specs. Swift and C++ libraries will work fine, only Kotlin HybridObjects have a breaking change. - For library authors: Upgrade to Nitro 0.35.x (and nitrogen 0.35.x), and re-generate your specs. Follow these steps to migrate your library:
- Re-generating specs will automatically make your library compatible and implements the
JHybridObjectchange. - If you use
bigintin your specs, replace it with eitherInt64orUInt64:See #1212 for more information.interface Math extends HybridObject<...> { - calculateFibonacci(n: bigint): bigint + calculateFibonacci(n: UInt64): UInt64 } - Replace your JNI initialization (
cpp-adapter.cpporJNIOnLoad.cpp) with this:JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { - return margelo::nitro::$$androidNamespace$$::initialize(vm); + return facebook::jni::initialize(vm, []() { + margelo::nitro::$$androidNamespace$$::registerAllNatives(); + }); }
- Re-generating specs will automatically make your library compatible and implements the