Skip to content

πŸ”§ Android build fails with undefined symbol RNWorklet errors on x86/x86_64Β #3684

@dmk3141618

Description

@dmk3141618

How were you trying to build the app?

Description

Android release build fails with multiple undefined symbol: RNWorklet::* linker errors on x86 and x86_64 architectures. The build succeeds for arm64-v8a and armeabi-v7a.

Environment

  • react-native-vision-camera: 4.7.3
  • react-native-worklets-core: 1.6.2
  • react-native: 0.81.0
  • expo: Bare Workflow
  • NDK version: 27.1.12297006
  • Platform: Android

Build Command

./gradlew bundleRelease




Observations
βœ… react-native-worklets-core builds librnworklets.so successfully for all architectures
βœ… Build succeeds for arm64-v8a and armeabi-v7a
❌ Build fails for x86 and x86_64
CMake logs show: [VisionCamera] react-native-worklets-core found, Frame Processors are enabled!
It seems like VisionCamera's CMake configuration is not properly linking against librnworklets.so on x86 architectures.
Workaround
Excluding x86/x86_64 in android/app/build.gradle:

defaultConfig {
    ndk {
        abiFilters "armeabi-v7a", "arm64-v8a"
    }
}
Related
Possibly related to the CMake target_link_libraries configuration for x86


### Full build logs

```tsx
> Task :react-native-vision-camera:buildCMakeRelWithDebInfo[x86] FAILED

ld.lld: error: undefined symbol: RNWorklet::JsiWorkletContext::initialize(...)
>>> referenced by JVisionCameraProxy.cpp:45

ld.lld: error: undefined symbol: RNWorklet::JsiWorkletContext::JsiWorkletContext(...)
ld.lld: error: undefined symbol: RNWorklet::JsiHostObject::JsiHostObject()
ld.lld: error: undefined symbol: RNWorklet::JsiHostObject::~JsiHostObject()
ld.lld: error: undefined symbol: RNWorklet::JsiWrapper::wrap(...)
ld.lld: error: undefined symbol: RNWorklet::JsiWorkletContext::getWorkletRuntime()
ld.lld: error: undefined symbol: RNWorklet::RuntimeLifecycleMonitor::addListener(...)
ld.lld: error: undefined symbol: RNWorklet::RuntimeLifecycleMonitor::removeListener(...)
ld.lld: error: undefined symbol: typeinfo for RNWorklet::JsiHostObject

clang++: error: linker command failed with exit code 1
ninja: build stopped: subcommand failed.

Project dependencies

- **react-native-vision-camera**: 4.7.3
- **react-native-worklets-core**: 1.6.2
- **react-native**: 0.81.0
- **expo**: Bare Workflow
- **NDK version**: 27.1.12297006
- **Platform**: Android

VisionCamera Version

4.7.3

Target platforms

Android

Operating system

MacOS

Can you build the VisionCamera Example app?

I didn't try (⚠️ your issue might get ignored & closed if you don't try this)

Additional information

Metadata

Metadata

Assignees

No one assigned

    Labels

    πŸ”§ build errorIssue is related to building VisionCamera in your project

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions