[dev-launcher] Fix port -1 error when no port in bundle url #19136
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why
when load js bundle from a URL without an explicit port, e.g. http://www.example.com/ , the app will crash with the following stacktrace.
the root cause is that
android.net.Uri.getPort()
will return -1 when there's no port.related facebook/react-native#34705 and ENG-5932
How
use
okhttp3.HttpUrl.defaultPort(scheme)
as fallback when port is -1.since the parameter in
injectReactInterceptor
is already android.net.Uri, i don't want to use HttpUrl to parse it again. only change the default port would be lower risk.Test Plan
test on bare-expo
EXPO_NO_DEFAULT_PORT=1 npx expo start --tunnel
exp://nquwmbi.kudochien.19000.exp.direct
Checklist
expo prebuild
& EAS Build (eg: updated a module plugin).