mirror of
https://github.com/react/react-native.git
synced 2026-09-28 21:33:11 +08:00
Summary: Follow-up to https://github.com/react/react-native/issues/58092. Android API 35 x86_64 emulator images expose both `x86_64` and `arm64-v8a` through `libndk_translation.so`. SoLoader 0.12.1 only searches the first ABI when loading uncompressed native libraries directly from the APK, causing ARM64-only RNTester and template apps to crash while loading `libreactnative.so`. Enable legacy JNI packaging through a CI-only Gradle init script so Android extracts the ARM64 libraries and the existing SoLoader `ApplicationSoSource` can load them. This applies only to dry-run RNTester builds and Android template E2E builds. Nightly and release packaging is unchanged. Failure evidence: https://github.com/react/react-native/actions/runs/32741094253 ## Changelog: [INTERNAL] [FIXED] - Extract native libraries for ARM64 Android E2E APKs running through NDK translation. Pull Request resolved: https://github.com/react/react-native/pull/58103 Test Plan: - `./node_modules/.bin/prettier --check .github/actions/build-android/action.yml .github/workflows/e2e-android-templateapp.yml` — passed. - Parsed both modified YAML files with the `yaml` Node package — passed. - Parsed the embedded workflow shell scripts with `bash -n` — passed. - Compiled `.github/workflow-scripts/legacy-jni-packaging.gradle` with the Groovy compiler bundled with Gradle 9.4.1 — passed. - Full Android E2E validation is delegated to this draft PR because the local Gradle daemon could not establish its localhost connection. Reviewed By: christophpurrer Differential Revision: D117222109 Pulled By: cortinico fbshipit-source-id: 65e09a38eed84474a2f50f7f5847e1676da4411b