SIGN IN SIGN UP
facebook / react-native UNCLAIMED

A framework for building native applications using React

fix(jni) ensure correct export of react/uimanager headers in prefab (#56215)

Summary:
When testing React Native nightlies, we got the following error from `react-android-0.86.0-nightly-20260325-d1809f0aa-SNAPSHOT-release`:

```
StateWrapperImpl.h:14:10: fatal error: 'react/uimanager/StateWrapper.h' file not found
```

The reason is that build.gradle.kts exports src/main/jni/react/fabric → react/fabric/ in the prefab headers, which includes StateWrapperImpl.h. That header does #include <react/uimanager/StateWrapper.h>, but src/main/jni/react/uimanager is not in the prefab export list — so the header is missing from the AAR.

This was introduced in https://github.com/facebook/react-native/issues/55288 where they modified StateWrapperImpl.h to inherit from StateWrapper and added the #include on StateWrapper.h.

This has caused Expo's nightlies to break due to the missing header file in the prefabs:

- Internally (when RN builds itself): Works fine because all JNI source dirs are on the include path
- Externally (when consumers use the published AAR): StateWrapperImpl.h is included in the prefab, it references <react/uimanager/StateWrapper.h>, but that header doesn't exist in the prefab package

## Fix

This commit fixes the above problem by including `src/main/jni/react/uimanager` in the prefab.

## Changelog
[Internal] -

Pull Request resolved: https://github.com/facebook/react-native/pull/56215

Test Plan:
I have tested and verified this by running this in the root of the repo:

```
./gradlew :packages:react-native:ReactAndroid:preparePrefab
ls packages/react-native/ReactAndroid/build/prefab-headers/reactnative/react/uimanager/
```

Before the fix the uimanager folder was not found, with the fix it exists and contains the following files: ComponentNameResolverBinding.h  StateWrapper.h  UIConstantsProviderBinding.h

## Changelog:

[ANDROID] [FIXED] - Fixed missing StateWrapper.h header in prefabs

## Potential Issues

There might be an issue with exporting these files in addition to the missing StateWrapper.h - but it seems like this is an issue with other folders in the jni / prefab - everything in a folder is exported when included for prefab.

Reviewed By: alanleedev

Differential Revision: D98124025

Pulled By: cipolleschi

fbshipit-source-id: c8ae35e77652b90477d17ea8cab48ce3ee84d067
C
Christian Falch committed
6e7797d5ab1af6bab8d94b1c1ad62dddc1ec5474
Parent: d1809f0
Committed by meta-codesync[bot] <215208954+meta-codesync[bot]@users.noreply.github.com> on 3/25/2026, 4:48:43 PM