Skip to content

Commit 8b60097

Browse files
committed
fix(jni) fix exporting react/uimanager headers
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 simply 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 This commit fixes the above problem by including `src/main/jni/react/uimanager` in the prefab. 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 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.
1 parent d1809f0 commit 8b60097

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

packages/react-native/ReactAndroid/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ val preparePrefab by
100100
Pair("../ReactCommon/hermes/inspector-modern/", "hermes/inspector-modern/"),
101101
// fabricjni
102102
Pair("src/main/jni/react/fabric", "react/fabric/"),
103+
// uimanagerjni
104+
Pair("src/main/jni/react/uimanager", "react/uimanager/"),
103105
// glog
104106
Pair(File(buildDir, "third-party-ndk/glog/exported/").absolutePath, ""),
105107
// jsiinpsector

0 commit comments

Comments
 (0)