[android] fix versioned build error (#22949)# Why fixed android versioned expo go build error after updating to gradle 8: ``` > Task :packages:react-native:ReactAndroid:buildCMakeDebug[x86_6
[android] fix versioned build error (#22949)# Why fixed android versioned expo go build error after updating to gradle 8: ``` > Task :packages:react-native:ReactAndroid:buildCMakeDebug[x86_64][fabricjni,folly_runtime,etc] FAILURE: Build failed with an exception. * What went wrong: A problem was found with the configuration of task ':vendored_sdk47_react-native-reanimated:prepareBoost' (type 'Copy'). - Gradle detected a problem with the following location: '/home/runner/.gradle/react-native-downloads/boost_1_76_0.tar.gz'. Reason: Task ':vendored_sdk47_react-native-reanimated:prepareBoost' uses this output of task ':packages:react-native:ReactAndroid:downloadBoost' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Possible solutions: 1. Declare task ':packages:react-native:ReactAndroid:downloadBoost' as an input of ':vendored_sdk47_react-native-reanimated:prepareBoost'. 2. Declare an explicit dependency on ':packages:react-native:ReactAndroid:downloadBoost' from ':vendored_sdk47_react-native-reanimated:prepareBoost' using Task#dependsOn. 3. Declare an explicit dependency on ':packages:react-native:ReactAndroid:downloadBoost' from ':vendored_sdk47_react-native-reanimated:prepareBoost' using Task#mustRunAfter. Please refer to https://docs.gradle.org/8.0.1/userguide/validation_problems.html#implicit_dependency for more details about this problem. ``` # How comment out unused code causing gradle dependency error # Test Plan android client ci passed
show more ...
Upgrade react-native 0.72.0-rc.5 (#22588)# Why upgrade react-native 0.72 for sdk 49 close ENG-8011 # How - bump package versions - `react-native 0.71.3 -> 0.72.0-rc.5` - `metro-reac
Upgrade react-native 0.72.0-rc.5 (#22588)# Why upgrade react-native 0.72 for sdk 49 close ENG-8011 # How - bump package versions - `react-native 0.71.3 -> 0.72.0-rc.5` - `metro-react-native-babel-preset 0.73.9 -> 0.76.5` - [bare-expo][templates][fabric-tester] migrate template base on [upgrade-helper](https://react-native-community.github.io/upgrade-helper/?from=0.71.7&to=0.72.0-rc.5) - [expo-template-tabs] remove the metro version overrides for expo-router. - [core][dev-laucher][dev-menu][media-library][screen-orientation][splash-screen][updates-interface][updates] add the `install_modules_dependencies` to support new architecture + use_frameworks! - [core][autolinking] fix some new architecture error on ios - [react-native-lab] update our fork to 0.72.0-rc.5 based - [go][tools] fix **react-native-lab/react-native/packages/react-native** path move because of react-native's repo monorepo changes - [go][android] fix gradle 8 errors - [go][ios] add `RCT_REMOTE_PROFILE=0` to fix the `RCT_ENABLE_INSPECTOR needs to be set to fulfill RCT_REMOTE_PROFILE` build error - [ncl] remove `ProgressViewIOS` / `ProgressBarAndroid` since they are deprecated/removed in 0.72 - [dev-menu][dev-launcher] rebuild bundles # Note - react-native-web is not bumped because of the [issue](https://github.com/necolas/react-native-web/issues/2523), so it's still react-native-web@~0.18.10. - currently disable ci typecheck for @expo/cli because of upstream metro typescript support. i'll have another pr to fix those errors. - updates e2e ci on android is broken at [here](https://github.com/expo/expo/blob/fada3d764957779fbfc3d7b723d185db1d933d95/packages/expo-updates/e2e/fixtures/Updates.e2e.ts#L518). i doubt if that's related to the react scheduler change. i'd disabled the failed test case. - the react-native upstream [migrated away the `@types/jest`](https://github.com/facebook/react-native/pull/36068). i was afraid that will be a breaking change to the existing jest test code since it requires the explicit `@jest/globals` import. i didn't do this in this upgrade. # Test Plan - ✅ fabric-tester (without expo-dev-client) - ✅ ci passed. there are some errors which are known: - updates e2e on android: as mentioned above - ios expo go on eas build: versioned expo go are broken on eas build m1 worker. this is also happening on main. - android client: no space left on the ubuntu worker. this is also happening on main. - ✅ bare-expo - ✅ unversioned expo go + ncl --------- Co-authored-by: Tomasz Sapeta <[email protected]>
[go] reversion sdk47 aar with unwinder fix (#21604)# Why fix android expo go when loading sdk 47 project on android 10 # How the crash reason is `couldn't find DSO to load: libjscexecutor_
[go] reversion sdk47 aar with unwinder fix (#21604)# Why fix android expo go when loading sdk 47 project on android 10 # How the crash reason is `couldn't find DSO to load: libjscexecutor_abi47_0_0.so caused by: dlopen failed: cannot locate symbol "_Unwind_Resume" referenced by "/data/app/host.exp.exponent-Sd4bXgd0_2W05EULOnhTZw==/lib/arm64/libjscexecutor_abi47_0_0.so"... result: 0` which is a ndk r23 issue where we should also link jsc with libunwinder explicitly. besides building the sdk 47 versioned aar, we should also link the libunwinder as https://github.com/facebook/react-native/commit/a232decbb1252ade0247a352f887ca4d97ee273c#diff-56e69cdb1f3a7a0b6a6f5aa63552e0bfa203512e588eaa0387449c4e43b315deR16-R27 i also update those ndk r21 libs in this pr, including: - libexpo-modules-core.so - libexpo-av.so - libexpo-gl.co - libreanimated.so - libreactnativeskia.so # Test Plan - android expo go + sdk 46/47/48 projects - android expo go + sdk 48 ncl - android expo go + sdk 47 + android 10 emulator check ndk ``` 1. unzip /path/to/apk 2. for f in */*/*.so; do ndk=`/path/to/parse_elfnote.py $f | grep NDK_VERSION`; echo "${f} ${ndk}"; done | grep r21 3. nm -CD */*/*.so | grep Unwind_Resume ```
[1/3] upgrade react-native 0.71 (#20799)# Why upgrade react-native 0.71 for sdk 48 close ENG-7192 # How - update package versions - `react: 18.1.0 -> 18.2.0` - `react-native 0.70.5
[1/3] upgrade react-native 0.71 (#20799)# Why upgrade react-native 0.71 for sdk 48 close ENG-7192 # How - update package versions - `react: 18.1.0 -> 18.2.0` - `react-native 0.70.5 -> 0.71.0` - `react-dom: 18.1.0 -> 18.2.0` - `react-test-renderer: 18.1.0 -> 18.2.0` - `react-native-web: 0.18.9 -> 0.18.10` - `babel-plugin-react-native-web: 0.18.9 -> 0.18.10` - `metro-react-native-babel-preset: 0.72.3 -> 0.73.5` - upgrade three project templates based on [upgrade-helper](https://react-native-community.github.io/upgrade-helper/?from=0.70.6&to=0.71.0) - bare-expo - expo-template-bare-minimum - fabric-tester (this is based on `npx expo prebuild --clean --no-install --template /path/to/expo-template-bare-minimum.tgz`) so it includes some inconsistent changes - [@expo/config-plugins]: support 0.71 template transform. the `namespace` in build.gradle and the files in `release` build variants - [fbjni] upgrade 0.3.0 to align 0.71 (also ndk version) - [expo-updates] move the `EX_UPDATES_NATIVE_DEBUG` `bundleInDebug` setup to templates. unfortunately, because RNGP setups the task dependencies pretty early. the original setup in expo-updates build.gradle is too late. note that the change doesn't reference any files from templates to expo-updates package. somehow it's not tightly coupled. - [native-tests / expo-modules-test-core / expo-modules-autolinking] fix ios unit test build error because jsc now in a dedicated podspec. in theory, the ios native unit test could now run on hermes as well. - for other details, please check commit histories one by one. # Test Plan - bare-expo ios / android - fabric ios / android - ci passed (except ios) - test-suite ios is broken for unknown reasons. it breaks only on github actions and hermes. for nightlies testing, i also [changed it to jsc](https://github.com/expo/expo/blob/1e029c89c4247802cc4880e27e116a6b4c71c502/tools/src/commands/SetupReactNativeNightly.ts#L287-L293) to make ci green. i'll try to follow up and investigate the root cause.
[android] Align fbjni version to 0.2.2 (#20139)# Why try to fix the android expo go 2.26.4 crash ``` *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** pid: 0, tid: 0 >>> host
[android] Align fbjni version to 0.2.2 (#20139)# Why try to fix the android expo go 2.26.4 crash ``` *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** pid: 0, tid: 0 >>> host.exp.exponent <<< backtrace: #00 pc 0x00000000000b2bdc /data/app/host.exp.exponent-7YRLiOv6bTg4h8glrIL41g==/split_config.arm64_v8a.apk!libc++_shared.so #01 pc 0x00000000000aec8c /data/app/host.exp.exponent-7YRLiOv6bTg4h8glrIL41g==/split_config.arm64_v8a.apk!libc++_shared.so (__gxx_personality_v0+348) #02 pc 0x00000000000224e8 /data/app/host.exp.exponent-7YRLiOv6bTg4h8glrIL41g==/split_config.arm64_v8a.apk!libfbjni.so ``` related to #20019 # How just noticed the fbjni is built by ndk r23 and it is [email protected]. the file is overwritten by reanimated because reanimated extracts fbjni to `react-native/ReactAndroid/src/main/jni/first-party/fbjni`, which is also the fbjni extraction path from ReactAndroid. i'm not 100% sure this is the root cause for the crash, but inconsistent ndk versions would cause crashes for sure. this pr tries to downgrade reanimated fbjni to 0.2.2. i don't update the vendoring tool because react-native 0.71 would have [email protected]. # Test Plan `./gradlew :app:assembleVersionedDebug`, unzip the apk and check the fbjni ndk version by [parse_elfnote.py](https://android.googlesource.com/platform/ndk/+/master/parse_elfnote.py)
[android] add versioned code for sdk 47 (#19676)# Why add android versioned code for sdk 47 # How `et add-sdk -p android -s 47.0.0` # Test Plan android versioned expo go + NCL