react-native-vision-camera: V3.0.0-rc.4 RN 0.72.3 android Execution failed for task ':react-native-vision-camera:buildCMakeDebug[arm64-v8a]'.🐛🐛
What were you trying to do?
Trying to upgrade from react-native-vision-camera v2 to v3
Installed version 3-RC4:
yarn add react-native-vision-camera@3.0.0-rc.4 react-native-worklets@https://github.com/chrfalch/react-native-worklets#3ac2fbb @shopify/react-native-skia
Reproduceable Code
yarn react-native run-android
What happened instead?
ld: error: undefined symbol: RNWorklet::JsiWorkletContext::getWorkletRuntime()
Relevant log output
* What went wrong:
Execution failed for task ':react-native-vision-camera:buildCMakeDebug[arm64-v8a]'.
> com.android.ide.common.process.ProcessException: ninja: Entering directory `D:\Developer\Projects\mCOPS\node_modules\react-native-vision-camera\android\.cxx\Debug\4g2w03f2\arm64-v8a'
[1/13] Building CXX object CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrame.cpp.o
[2/13] Building CXX object CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JHashMap.cpp.o
[3/13] Building CXX object CMakeFiles/VisionCamera.dir/src/main/cpp/FrameHostObject.cpp.o
[4/13] Building CXX object CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCamera.cpp.o
[5/13] Building CXX object CMakeFiles/VisionCamera.dir/D_/Developer/Projects/mCOPS/node_modules/react-native-vision-camera/cpp/JSITypedArray.cpp.o
[6/13] Building CXX object CMakeFiles/VisionCamera.dir/src/main/cpp/FrameProcessorPluginHostObject.cpp.o
[7/13] Building CXX object CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o
[8/13] Building CXX object CMakeFiles/VisionCamera.dir/src/main/cpp/JSIJNIConversion.cpp.o
[9/13] Building CXX object CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o
[10/13] Building CXX object CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JVisionCameraScheduler.cpp.o
[11/13] Building CXX object CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessorPlugin.cpp.o
[12/13] Building CXX object CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JVisionCameraProxy.cpp.o
[13/13] Linking CXX shared library ..\..\..\..\build\intermediates\cxx\Debug\4g2w03f2\obj\arm64-v8a\libVisionCamera.so
FAILED: ../../../../build/intermediates/cxx/Debug/4g2w03f2/obj/arm64-v8a/libVisionCamera.so
cmd.exe /C "cd . && C:\Users\n1122168\AppData\Local\Android\Sdk\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=aarch64-none-linux-android21 --sysroot=C:/Users/n1122168/AppData/Local/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/windows-x86_64/sysroot -fPIC -O2 -frtti -fexceptions -Wall -Wno-unused-variable -fstack-protector-all -g -fno-limit-debug-info -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Qunused-arguments -Wl,--no-undefined -shared -Wl,-soname,libVisionCamera.so -o ..\..\..\..\build\intermediates\cxx\Debug\4g2w03f2\obj\arm64-v8a\libVisionCamera.so CMakeFiles/VisionCamera.dir/D_/Developer/Projects/mCOPS/node_modules/react-native-vision-camera/cpp/JSITypedArray.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/FrameHostObject.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/FrameProcessorPluginHostObject.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/JSIJNIConversion.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCamera.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrame.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessorPlugin.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JHashMap.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JVisionCameraProxy.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JVisionCameraScheduler.cpp.o C:/Users/n1122168/AppData/Local/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so -landroid C:/Users/n1122168/.gradle/caches/transforms-3/ef7b7082a4fed21bc2a02e3c84543346/transformed/jetified-react-android-0.72.3-debug/prefab/modules/jsi/libs/android.arm64-v8a/libjsi.so C:/Users/n1122168/.gradle/caches/transforms-3/ef7b7082a4fed21bc2a02e3c84543346/transformed/jetified-react-android-0.72.3-debug/prefab/modules/reactnativejni/libs/android.arm64-v8a/libreactnativejni.so C:/Users/n1122168/.gradle/caches/transforms-3/ef7b7082a4fed21bc2a02e3c84543346/transformed/jetified-react-android-0.72.3-debug/prefab/modules/folly_runtime/libs/android.arm64-v8a/libfolly_runtime.so C:/Users/n1122168/.gradle/caches/transforms-3/68b86d627830190409a9d6f726c1e685/transformed/jetified-fbjni-0.3.0/prefab/modules/fbjni/libs/android.arm64-v8a/libfbjni.so -latomic -lm && cd ."
ld: error: undefined symbol: RNWorklet::JsiWorkletContext::getWorkletRuntime()
>>> referenced by VisionCameraProxy.cpp:35 (D:/Developer/Projects/mCOPS/node_modules/react-native-vision-camera/android/src/main/cpp\VisionCameraProxy.cpp:35)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(vision::VisionCameraProxy::~VisionCameraProxy())
>>> referenced by JFrameProcessor.cpp:39 (D:/Developer/Projects/mCOPS/node_modules/react-native-vision-camera/android/src/main/cpp/java-bindings\JFrameProcessor.cpp:39)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(vision::JFrameProcessor::callWithFrameHostObject(std::__ndk1::shared_ptr<vision::FrameHostObject> const&) const)
ld: error: undefined symbol: RNWorklet::JsiHostObject::JsiHostObject()
>>> referenced by WKTJsiWorklet.h:77 (D:/Developer/Projects/mCOPS/node_modules/react-native-worklets/android/build/headers/rnworklets\react-native-worklets\WKTJsiWorklet.h:77)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(RNWorklet::JsiWorklet::JsiWorklet(facebook::jsi::Runtime&, facebook::jsi::Value const&))
>>> referenced by WKTJsiWorkletContext.h:31 (D:/Developer/Projects/mCOPS/node_modules/react-native-worklets/android/build/headers/rnworklets\react-native-worklets\WKTJsiWorkletContext.h:31)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::JsiWorkletContext::getDefaultInstance())
ld: error: undefined symbol: RNWorklet::JsiHostObject::~JsiHostObject()
>>> referenced by WKTJsiWorklet.h:79 (D:/Developer/Projects/mCOPS/node_modules/react-native-worklets/android/build/headers/rnworklets\react-native-worklets\WKTJsiWorklet.h:79)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(RNWorklet::JsiWorklet::JsiWorklet(facebook::jsi::Runtime&, facebook::jsi::Value const&))
>>> referenced by WKTJsiWorklet.h:74 (D:/Developer/Projects/mCOPS/node_modules/react-native-worklets/android/build/headers/rnworklets\react-native-worklets\WKTJsiWorklet.h:74)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(RNWorklet::JsiWorklet::~JsiWorklet())
ld: error: undefined symbol: RNWorklet::JsiWrapper::wrap(facebook::jsi::Runtime&, facebook::jsi::Value const&, RNWorklet::JsiWrapper*)
>>> referenced by WKTJsiWrapper.h:62 (D:/Developer/Projects/mCOPS/node_modules/react-native-worklets/android/build/headers/rnworklets\react-native-worklets\WKTJsiWrapper.h:62)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(RNWorklet::JsiWorklet::createWorklet(facebook::jsi::Runtime&, std::__ndk1::shared_ptr<facebook::jsi::Function>))
ld: error: undefined symbol: RNWorklet::JsiHostObject::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)
>>> referenced by VisionCameraProxy.cpp
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(vtable for RNWorklet::JsiWorklet)
ld: error: undefined symbol: RNWorklet::JsiHostObject::set(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&, facebook::jsi::Value const&)
>>> referenced by VisionCameraProxy.cpp
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(vtable for RNWorklet::JsiWorklet)
ld: error: undefined symbol: RNWorklet::JsiHostObject::getPropertyNames(facebook::jsi::Runtime&)
>>> referenced by VisionCameraProxy.cpp
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(vtable for RNWorklet::JsiWorklet)
ld: error: undefined symbol: typeinfo for RNWorklet::JsiHostObject
>>> referenced by VisionCameraProxy.cpp
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(typeinfo for RNWorklet::JsiWorklet)
ld: error: undefined symbol: RNWorklet::JsiWorkletContext::invokeOnJsThread(std::__ndk1::function<void (facebook::jsi::Runtime&)>&&)
>>> referenced by JFrameProcessor.cpp:52 (D:/Developer/Projects/mCOPS/node_modules/react-native-vision-camera/android/src/main/cpp/java-bindings\JFrameProcessor.cpp:52)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(vision::JFrameProcessor::callWithFrameHostObject(std::__ndk1::shared_ptr<vision::FrameHostObject> const&) const)
>>> referenced by WKTJsiWorklet.h:358 (D:/Developer/Projects/mCOPS/node_modules/react-native-worklets/android/build/headers/rnworklets\react-native-worklets\WKTJsiWorklet.h:358)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::WorkletInvoker::~WorkletInvoker())
ld: error: undefined symbol: RNWorklet::JsiWorkletContext::runtimeMappings
>>> referenced by __tree:0 (C:/Users\n1122168\AppData\Local\Android\Sdk\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\c++\v1\__tree:0)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::WorkletInvoker::call(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long))
>>> referenced by __tree:0 (C:/Users\n1122168\AppData\Local\Android\Sdk\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\c++\v1\__tree:0)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::WorkletInvoker::call(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long))
ld: error: undefined symbol: RNWorklet::JsiWorkletContext::invokeOnWorkletThread(std::__ndk1::function<void (RNWorklet::JsiWorkletContext*, facebook::jsi::Runtime&)>&&)
>>> referenced by WKTJsiWorklet.h:361 (D:/Developer/Projects/mCOPS/node_modules/react-native-worklets/android/build/headers/rnworklets\react-native-worklets\WKTJsiWorklet.h:361)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::WorkletInvoker::~WorkletInvoker())
ld: error: undefined symbol: RNWorklet::JsiWorkletContext::defaultInstance
>>> referenced by memory:3887 (C:/Users\n1122168\AppData\Local\Android\Sdk\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\c++\v1\memory:3887)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::JsiWorkletContext::getDefaultInstance())
>>> referenced by memory:3887 (C:/Users\n1122168\AppData\Local\Android\Sdk\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\c++\v1\memory:3887)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::JsiWorkletContext::getDefaultInstance())
ld: error: undefined symbol: vtable for RNWorklet::JsiWorkletContext
>>> referenced by WKTJsiWorkletContext.h:31 (D:/Developer/Projects/mCOPS/node_modules/react-native-worklets/android/build/headers/rnworklets\react-native-worklets\WKTJsiWorkletContext.h:31)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::JsiWorkletContext::getDefaultInstance())
>>> referenced by WKTJsiWorkletContext.h:31 (D:/Developer/Projects/mCOPS/node_modules/react-native-worklets/android/build/headers/rnworklets\react-native-worklets\WKTJsiWorkletContext.h:31)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::JsiWorkletContext::getDefaultInstance())
>>> the vtable symbol may be undefined because the class is missing its key function (see https://lld.llvm.org/missingkeyfunction)
ld: error: undefined symbol: RNWorklet::JsiWorkletContext::~JsiWorkletContext()
>>> referenced by memory:2252 (C:/Users\n1122168\AppData\Local\Android\Sdk\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\c++\v1\memory:2252)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(std::__ndk1::__shared_ptr_emplace<RNWorklet::JsiWorkletContext, std::__ndk1::allocator<RNWorklet::JsiWorkletContext> >::~__shared_ptr_emplace())
>>> referenced by memory:2252 (C:/Users\n1122168\AppData\Local\Android\Sdk\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\c++\v1\memory:2252)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(std::__ndk1::__shared_ptr_emplace<RNWorklet::JsiWorkletContext, std::__ndk1::allocator<RNWorklet::JsiWorkletContext> >::~__shared_ptr_emplace())
ld: error: undefined symbol: RNWorklet::JsiWorkletContext::JsiWorkletContext(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, facebook::jsi::Runtime*, std::__ndk1::function<void (std::__ndk1::function<void ()>&&)>, std::__ndk1::function<void (std::__ndk1::function<void ()>&&)>)
>>> referenced by memory:2278 (C:/Users\n1122168\AppData\Local\Android\Sdk\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\c++\v1\memory:2278)
>>> CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JVisionCameraProxy.cpp.o:(vision::JVisionCameraProxy::JVisionCameraProxy(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<vision::JVisionCameraProxy, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*> const&, facebook::jsi::Runtime*, std::__ndk1::shared_ptr<facebook::react::CallInvoker> const&, facebook::jni::basic_strong_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<vision::JVisionCameraScheduler, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*, facebook::jni::GlobalReferenceAllocator> const&))
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
C++ build system [build] failed while executing:
@echo off
"C:\\Users\\n1122168\\AppData\\Local\\Android\\Sdk\\cmake\\3.22.1\\bin\\ninja.exe" ^
-C ^
"D:\\Developer\\Projects\\mCOPS\\node_modules\\react-native-vision-camera\\android\\.cxx\\Debug\\4g2w03f2\\arm64-v8a" ^
VisionCamera
from D:\Developer\Projects\mCOPS\node_modules\react-native-vision-camera\android
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
* Get more help at https://help.gradle.org
Device
Samsung Galaxy s20+
VisionCamera Version
3.0.0-rc.4
Additional information
- I am using Expo
- I have read the Troubleshooting Guide
- I agree to follow this project’s Code of Conduct
- I searched for similar issues in this repository and found none.
About this issue
- Original URL
- State: closed
- Created a year ago
- Reactions: 1
- Comments: 15 (4 by maintainers)
I have also same issue. When can this issue resolved? I need to use this module in a week.
Had the same. Solved by deleting temp folders. I think it was
\android\.gradle
folder because I was not able to reproduce error any more.@DeveloperMCD Did you install Reanimated to dependencies? Adding Reanimated to a clean project with only RNVC V3 installed caused this problem in my case. However, I couldn’t find the exact steps to reproduce it. Sometimes it occurred, sometimes it didn’t.
Hey! I’ve rewritten the entire Android codebase of VisionCamera from CameraX to Camera2 in the efforts of ✨ VisionCamera V3.
I just now completed the Camera2 rewrite and I believe the core structure is running, but there might be some edge cases to iron out. Can you try and test the PR #1674 for me to see if you can still reproduce this issue here?
Here’s an instruction on how you can test that: https://github.com/mrousavy/react-native-vision-camera/pull/1674#issuecomment-1684104217
If the issue cannot be reproduced with that version/PR anymore, then hoorayy, I fixed it! 🎉 Otherwise please let me know and I’ll keep this issue open to keep track of it.
Thank you!