Skip to content

Bump SoLoader to 0.13.0 - #59813

Open
shamilovtim wants to merge 1 commit into
react:mainfrom
shamilovtim:bump-soloader-0.13.0
Open

shamilovtim wants to merge 1 commit into
react:mainfrom
shamilovtim:bump-soloader-0.13.0

Conversation

@shamilovtim

@shamilovtim shamilovtim commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Bump SoLoader from 0.12.1 to 0.13.0.

SoLoader 0.13.0 searches the installed ABI first. This fixes native library loading on x86_64 devices that run ARM libraries.
It also removes the checked IOException from init. Drop the catch block and unused import from the generated Java entry point, and update its existing expected output. The old catch causes javac to reject the generated source because init no longer throws IOException.

Requested by @cortinico in SoLoader #155. See the 0.13.0 release notes.

Changelog

[ANDROID] [FIXED] - Update SoLoader to 0.13.0 to fix native library loading when the installed ABI differs from the first supported ABI.

Test plan

  • ./gradlew -p packages/gradle-plugin :react-native-gradle-plugin:test --tests com.facebook.react.tasks.GenerateEntryPointTaskTest --console=plain passed all 3 tests.
  • Ktfmt 0.59.0 checked both changed Kotlin files. git diff --check passed.
  • A Gradle dependency-resolution check against Maven Central resolved the published soloader, annotation and nativeloader 0.13.0 artifacts.
  • Compiled the generated Java entry point against the published 0.13.0 artifacts, Android API 36 and cached ReactAndroid classes. The check supplied application BuildConfig flags. The old entry point fails on the obsolete IOException catch. The updated entry point compiles.

A full React Native Android build was not run locally.

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Nov 5, 2026
@facebook-github-tools facebook-github-tools Bot added the Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team. label Nov 5, 2026
Comment on lines -90 to -94
try {
SoLoader.init(context, OpenSourceMergedSoMapping.INSTANCE);
} catch (IOException error) {
throw new RuntimeException(error);
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are you removing this try/catch?

@shamilovtim shamilovtim Nov 6, 2026 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SoLoader 0.13.0 changed that particular init overload so it no longer declares throws IOException.

https://github.com/meta/SoLoader/blob/v0.13.0/java/com/facebook/soloader/SoLoader.java#L366-L374

Previously, React Native caught IOException and wrapped it in RuntimeException. Now SoLoader does that itself on the inside for this particular overload.

@cortinico

Copy link
Copy Markdown
Contributor

@shamilovtim can you rebase on top of master, the release should be out now

@shamilovtim

Copy link
Copy Markdown
Contributor Author

@shamilovtim can you rebase on top of master, the release should be out now

rebased

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants