th3rdwave / react-native-safe-area-context

A flexible way to handle safe area insets in JS. Also works on Android and Web!
MIT License
2.08k stars 191 forks source link

[Fabric New Architecture] Not compatible with React Native 0.73.0 RC with New Architecture #453

Closed ravindraguptacapgemini closed 6 months ago

ravindraguptacapgemini commented 8 months ago

I tried to upgrade app to React Native 0.73.0-rc.4 with enabling new architecture, but this library is not building at all with c++ errors:

FAILED: CMakeFiles/appmodules.dir/Users/ravindragupta/Desktop/Projects/mobilev2/native/android/app/build/generated/rncli/src/main/jni/rncli.cpp.o /Users/ravindragupta/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --gcc-toolchain=/Users/ravindragupta/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/ravindragupta/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -Dappmodules_EXPORTS -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native/ReactAndroid/cmake-utils/default-app-setup -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/android/app/build/generated/rncli/src/main/jni -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-safe-area-context/android/src/main/jni -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-screens/android/src/main/jni -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-vector-icons/android/build/generated/source/codegen/jni/. -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-vector-icons/android/build/generated/source/codegen/jni/react/renderer/components/RNVectorIconsSpec -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/@bugsnag/react-native/android/build/generated/source/codegen/jni/. -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/@bugsnag/react-native/android/build/generated/source/codegen/jni/react/renderer/components/BugsnagReactNativeSpec -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/@pushpendersingh/react-native-scanner/android/build/generated/source/codegen/jni/. -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/@pushpendersingh/react-native-scanner/android/build/generated/source/codegen/jni/react/renderer/components/RNReactNativeScannerViewSpec -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/@react-native-async-storage/async-storage/android/build/generated/source/codegen/jni/. -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/@react-native-async-storage/async-storage/android/build/generated/source/codegen/jni/react/renderer/components/rnasyncstorage -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/@react-native-community/datetimepicker/android/build/generated/source/codegen/jni/. -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/@react-native-community/datetimepicker/android/build/generated/source/codegen/jni/react/renderer/components/RNDateTimePickerCGen -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/@react-native-community/geolocation/android/build/generated/source/codegen/jni/. -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/@react-native-community/geolocation/android/build/generated/source/codegen/jni/react/renderer/components/RNCGeolocation -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-gesture-handler/android/build/generated/source/codegen/jni/. -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-gesture-handler/android/build/generated/source/codegen/jni/react/renderer/components/rngesturehandler_codegen -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-permissions/android/build/generated/source/codegen/jni/. -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-permissions/android/build/generated/source/codegen/jni/react/renderer/components/rnpermissions -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-safe-area-context/android/src/main/jni/. -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-safe-area-context/android/src/main/jni/../../../../common/cpp -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-safe-area-context/android/src/main/jni/../../../build/generated/source/codegen/jni -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-safe-area-context/android/src/main/jni/../../../build/generated/source/codegen/jni/react/renderer/components/safeareacontext -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-screens/android/src/main/jni/. -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-screens/android/src/main/jni/../../../../common/cpp -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-screens/android/src/main/jni/../../../build/generated/source/codegen/jni -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-screens/android/src/main/jni/../../../build/generated/source/codegen/jni/react/renderer/components/rnscreens -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-webview/android/build/generated/source/codegen/jni/. -I/Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-webview/android/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/fabricjni/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/82bf628b06ff8fd05e9d07046003b0c2/transformed/jetified-fbjni-0.5.1/prefab/modules/fbjni/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/folly_runtime/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/glog/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/jsi/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/react_codegen_rncore/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/react_debug/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/react_utils/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/react_nativemodule_core/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/react_newarchdefaults/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/react_render_componentregistry/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/react_render_core/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/react_render_debug/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/react_render_graphics/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/react_render_imagemanager/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/react_render_mapbuffer/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/rrc_image/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/rrc_view/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/rrc_legacyviewmanagerinterop/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/runtimeexecutor/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/turbomodulejsijni/include -isystem /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/yoga/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -Wall -Werror -Wno-error=cpp -fexceptions -frtti -std=c++20 -DWITH_INSPECTOR=1 -DLOG_TAG="ReactNative" -DFOLLY_NO_CONFIG=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_CFG_NO_COROUTINES=1 -DFOLLY_MOBILE=1 -DFOLLY_HAVE_RECVMMSG=1 -DFOLLY_HAVE_PTHREAD=1 -DFOLLY_HAVE_XSI_STRERROR_R=1 -MD -MT CMakeFiles/appmodules.dir/Users/ravindragupta/Desktop/Projects/mobilev2/native/android/app/build/generated/rncli/src/main/jni/rncli.cpp.o -MF CMakeFiles/appmodules.dir/Users/ravindragupta/Desktop/Projects/mobilev2/native/android/app/build/generated/rncli/src/main/jni/rncli.cpp.o.d -o CMakeFiles/appmodules.dir/Users/ravindragupta/Desktop/Projects/mobilev2/native/android/app/build/generated/rncli/src/main/jni/rncli.cpp.o -c /Users/ravindragupta/Desktop/Projects/mobilev2/native/android/app/build/generated/rncli/src/main/jni/rncli.cpp In file included from /Users/ravindragupta/Desktop/Projects/mobilev2/native/android/app/build/generated/rncli/src/main/jni/rncli.cpp:21: In file included from /Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-safe-area-context/android/src/main/jni/safeareacontext.h:6: /Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-safe-area-context/android/src/main/jni/../../../../common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewComponentDescriptor.h:15:60: error: non-virtual member function marked 'override' hides virtual member function void adopt(ShadowNode::Unshared const &shadowNode) const override { ^ /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/react_nativemodule_core/include/react/renderer/core/ConcreteComponentDescriptor.h:172:16: note: hidden overloaded virtual function 'facebook::react::ConcreteComponentDescriptorfacebook::react::RNCSafeAreaViewShadowNode::adopt' declared here: type mismatch at 1st parameter ('facebook::react::ShadowNode &' vs 'const ShadowNode::Unshared &' (aka 'const shared_ptrfacebook::react::ShadowNode &')) virtual void adopt(ShadowNode& shadowNode) const override { ^ In file included from /Users/ravindragupta/Desktop/Projects/mobilev2/native/android/app/build/generated/rncli/src/main/jni/rncli.cpp:21: In file included from /Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-safe-area-context/android/src/main/jni/safeareacontext.h:6: /Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-safe-area-context/android/src/main/jni/../../../../common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewComponentDescriptor.h:21:40: error: non-const lvalue reference to type 'facebook::react::ShadowNode' cannot bind to a value of unrelated type 'const ShadowNode::Unshared' (aka 'const shared_ptrfacebook::react::ShadowNode') ConcreteComponentDescriptor::adopt(shadowNode); ^~~~~~ /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/react_nativemodule_core/include/react/renderer/core/ConcreteComponentDescriptor.h:172:34: note: passing argument to parameter 'shadowNode' here virtual void adopt(ShadowNode& shadowNode) const override { ^ In file included from /Users/ravindragupta/Desktop/Projects/mobilev2/native/android/app/build/generated/rncli/src/main/jni/rncli.cpp:23: In file included from /Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-screens/android/src/main/jni/rnscreens.h:19: /Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-screens/android/src/main/jni/../../../../common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h:15:60: error: non-virtual member function marked 'override' hides virtual member function void adopt(ShadowNode::Unshared const &shadowNode) const override { ^ /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/react_nativemodule_core/include/react/renderer/core/ConcreteComponentDescriptor.h:172:16: note: hidden overloaded virtual function 'facebook::react::ConcreteComponentDescriptorfacebook::react::RNSScreenShadowNode::adopt' declared here: type mismatch at 1st parameter ('facebook::react::ShadowNode &' vs 'const ShadowNode::Unshared &' (aka 'const shared_ptrfacebook::react::ShadowNode &')) virtual void adopt(ShadowNode& shadowNode) const override { ^ In file included from /Users/ravindragupta/Desktop/Projects/mobilev2/native/android/app/build/generated/rncli/src/main/jni/rncli.cpp:23: In file included from /Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-screens/android/src/main/jni/rnscreens.h:19: /Users/ravindragupta/Desktop/Projects/mobilev2/native/node_modules/react-native-screens/android/src/main/jni/../../../../common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h:36:40: error: non-const lvalue reference to type 'facebook::react::ShadowNode' cannot bind to a value of unrelated type 'const ShadowNode::Unshared' (aka 'const shared_ptrfacebook::react::ShadowNode') ConcreteComponentDescriptor::adopt(shadowNode); ^~~~~~ /Users/ravindragupta/.gradle/caches/transforms-3/cad32421dc5982419efab7efe732c3fa/transformed/jetified-react-android-0.73.0-rc.4-debug/prefab/modules/react_nativemodule_core/include/react/renderer/core/ConcreteComponentDescriptor.h:172:34: note: passing argument to parameter 'shadowNode' here virtual void adopt(ShadowNode& shadowNode) const override { ^ 4 errors generated. ninja: build stopped: subcommand failed.

C++ build system [build] failed while executing: /Users/ravindragupta/Library/Android/sdk/cmake/3.22.1/bin/ninja -C /Users/ravindragupta/Desktop/Projects/mobilev2/native/android/app/.cxx/Debug/4e6m2qi1/arm64-v8a appmodules react_codegen_BugsnagReactNativeSpec react_codegen_RNCGeolocation react_codegen_RNCWebViewSpec react_codegen_RNDateTimePickerCGen react_codegen_RNReactNativeScannerViewSpec react_codegen_RNVectorIconsSpec react_codegen_rnasyncstorage react_codegen_rngesturehandler_codegen react_codegen_rnpermissions react_codegen_rnscreens react_codegen_safeareacontext from /Users/ravindragupta/Desktop/Projects/mobilev2/native/android/app

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/. BUILD FAILED in 15s error Failed to install the app. Command failed with exit code 1: ./gradlew app:installNormalDebug -PreactNativeDevServerPort=8081 FAILURE: Build failed with an exception. * What went wrong:

jacobp100 commented 8 months ago

0.73 isn't out yet - but you're welcome to submit a PR if you find out what the issue is

ravindraguptacapgemini commented 8 months ago

@jacobp100 please let me know if we can connect on a call, I have total 4 issue to workout.

ravindraguptacapgemini commented 8 months ago

@jacobp100 I have made the changes, here is the patch file, please check. react-native-safe-area-context+4.7.4.patch

jacobp100 commented 8 months ago

Thanks for that. Could you do it as a PR? I think that patch is including some unrelated binary file changes

ravindraguptacapgemini commented 8 months ago

@jacobp100 Please check the PR: https://github.com/th3rdwave/react-native-safe-area-context/pull/454

AlirezaHadjar commented 7 months ago

Just tried out the main branch. and it seems like that the PR has fixed the issue.

jacobp100 commented 7 months ago

@janicduplessis do we need to do a release?

theyanniss23002 commented 6 months ago
Снимок экрана 2023-12-11 в 17 50 44

version 4.8.0

what can be done about this?

wadiasalem commented 6 months ago

@theyanniss23002 I am facing the same error here after upgrading to RN 0.72 with both versions:

jacobp100 commented 6 months ago

We no longer support fabric on 0.72. Please update react native, use an older version of this package, or disable fabric

theyanniss23002 commented 6 months ago

@jacobp100 do you support version 0.73?

wadiasalem commented 6 months ago

@jacobp100 can you provide the last old version that support fabric on 0.72

jacobp100 commented 6 months ago

@theyanniss23002 Yes

@wadiasalem Whatever was before the current version. It was the most recent change that added support for 0.73 and broke 0.72 in the process

theyanniss23002 commented 6 months ago

@jacobp100 Now all packages are destroyed during initialization even without switching to 0.73. I can't imagine how this is possible

jacobp100 commented 6 months ago

Fabric isn't considered stable yet. Use it at your own risk