Commit 1030a5a
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 #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: #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: c8ae35e77652b90477d17ea8cab48ce3ee84d0671 parent fc61224 commit 1030a5a
1 file changed
+2
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
| 103 | + | |
| 104 | + | |
103 | 105 | | |
104 | 106 | | |
105 | 107 | | |
| |||
0 commit comments