-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Environment
info Fetching system and libraries information...
System:
OS: macOS 15.4.1
CPU: (12) arm64 Apple M2 Pro
Memory: 120.38 MB / 32.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 22.15.0
path: ~/.nvm/versions/node/v22.15.0/bin/node
Yarn:
version: 1.22.22
path: ~/projects/ioverlander-client-react/node_modules/.bin/yarn
npm:
version: 10.9.2
path: ~/.nvm/versions/node/v22.15.0/bin/npm
Watchman:
version: 20230430.125247.0
path: /usr/local/bin/watchman
Managers:
CocoaPods:
version: 1.16.2
path: /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 24.4
- iOS 18.4
- macOS 15.4
- tvOS 18.4
- visionOS 2.4
- watchOS 11.4
Android SDK:
API Levels:
- "29"
- "30"
- "31"
- "33"
- "34"
- "35"
Build Tools:
- 29.0.3
- 30.0.2
- 30.0.3
- 32.0.0
- 33.0.1
- 33.0.2
- 34.0.0
- 35.0.0
System Images:
- android-34 | Google APIs ARM 64 v8a
- android-35 | Google APIs ARM 64 v8a
- android-35 | Google Play ARM 64 v8a
Android NDK: Not Found
IDEs:
Android Studio: 2022.3 AI-223.8836.35.2231.10671973
Xcode:
version: 16.3/16E140
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.8
path: /usr/bin/javac
Ruby:
version: 2.6.10
path: /usr/bin/ruby
npmPackages:
"@react-native-community/cli":
installed: 18.0.0
wanted: ^18.0.0
react:
installed: 18.3.1
wanted: 18.3.1
react-native:
installed: 0.77.2
wanted: ~0.77.2
react-native-macos: Not Found
npmGlobalPackages:
"react-native": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: true
newArchEnabled: false
Things I’ve done to figure out my issue
- I used upgrade-helper to do my upgrade.
- spent lots of time googling and searching
- asked advice of other devs
Upgrading version
0.77.2
Description
I've upgraded to 0.77.2 and ios is building and linking properly. Android release is also working. However, when running:
$ ./gradlew assembleDebug
I receive lots of errors by the linker, all looking like this:
> Task :app:buildCMakeDebug[arm64-v8a]
C/C++: ninja: Entering directory `/Users/xxj/projects/my-react-project/android/app/.cxx/Debug/606m5u29/arm64-v8a'
C/C++: : && /Users/xxj/Library/Android/sdk/ndk/27.1.12297006/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android24 --sysroot=/Users/xxj/Library/Android/sdk/ndk/27.1.12297006/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D__BIONIC_NO_PAGE_SIZE_MACRO -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -Wl,-z,max-page-size=16384 -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,libreact_codegen_safeareacontext.so -o /Users/xxj/projects/my-react-project/android/app/build/intermediates/cxx/Debug/606m5u29/obj/arm64-v8a/libreact_codegen_safeareacontext.so safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.cpp.o safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp.o safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/ComponentDescriptors.cpp.o safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/EventEmitters.cpp.o safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/Props.cpp.o safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/ShadowNodes.cpp.o safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/States.cpp.o safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/safeareacontextJSI-generated.cpp.o safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/build/generated/source/codegen/jni/safeareacontext-generated.cpp.o /Users/xxj/.gradle/caches/8.10.2/transforms/5deb82addbf8b31de14123bfcc46b5b0/transformed/fbjni-0.7.0/prefab/modules/fbjni/libs/android.arm64-v8a/libfbjni.so /Users/xxj/.gradle/caches/8.10.2/transforms/de3d83211ade7b6301fee17e14e72358/transformed/react-android-0.77.2-release/prefab/modules/jsi/libs/android.arm64-v8a/libjsi.so /Users/xxj/.gradle/caches/8.10.2/transforms/de3d83211ade7b6301fee17e14e72358/transformed/react-android-0.77.2-release/prefab/modules/reactnative/libs/android.arm64-v8a/libreactnative.so -latomic -lm && :
C/C++: ld.lld: error: undefined symbol: facebook::react::Sealable::Sealable()
C/C++: >>> referenced by Props.cpp:17 (/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/Props.cpp:17)
C/C++: >>> safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/Props.cpp.o:(facebook::react::RNCSafeAreaProviderProps::RNCSafeAreaProviderProps(facebook::react::PropsParserContext const&, facebook::react::RNCSafeAreaProviderProps const&, facebook::react::RawProps const&))
C/C++: >>> referenced by Props.cpp:24 (/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/Props.cpp:24)
C/C++: >>> safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/Props.cpp.o:(facebook::react::RNCSafeAreaViewProps::RNCSafeAreaViewProps(facebook::react::PropsParserContext const&, facebook::react::RNCSafeAreaViewProps const&, facebook::react::RawProps const&))
C/C++: >>> referenced by Props.h:20 (/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/src/main/jni/../../../build/generated/source/codegen/jni/react/renderer/components/safeareacontext/Props.h:20)
C/C++: >>> safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/ComponentDescriptors.cpp.o:(facebook::react::RNCSafeAreaProviderProps::RNCSafeAreaProviderProps())
C/C++: ld.lld: error: undefined symbol: facebook::react::Sealable::~Sealable()
C/C++: >>> referenced by Props.cpp:23 (/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/Props.cpp:23)
C/C++: >>> safeareacontext_autolinked_build/CMakeFiles/react_codegen_safeareacontext.dir/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/Props.cpp.o:(facebook::react::RNCSafeAreaProviderProps::RNCSafeAreaProviderProps(facebook::react::PropsParserContext const&, facebook::react::RNCSafeAreaProviderProps const&, facebook::react::RawProps const&))
C/C++: >>> referenced by Props.cpp:31 (/Users/xxj/projects/my-react-project/node_modules/react-native-safe-area-context/android/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/Props.cpp:31)
Reproducible demo
I have not pared this down to make a reproducible project I can share.
I'm a noob when it comes to android, but what it looks like is that it's building and linking debug versions of some libraries against release versions of other libraries.
For example, when I open up node_modules/react-native/ReactCommon/react/renderer/core/Sealable.cpp
, I see this:
#ifdef REACT_NATIVE_DEBUG
Sealable::Sealable() : sealed_(false) {}
Sealable::Sealable(const Sealable & /*other*/) : sealed_(false){};
This makes me think that REACT_NATIVE_DEBUG
was not defined when building the react native core code above, but that it was expected to be defined causing the mismatch.
I'm not sure how REACT_NATIVE_DEBUG
or why it might not be defined properly in my android builds.
Much appreciation for any ideas/suggestions here.
thanks,
sam