Repository navigation
Description
Compiling a release with Hermes enabled causes a white screen after downloading from Google Play.
Literally everything else works fine, it only breaks after being uploaded to Google Play.
- Debug builds work.
./gradlew installReleaseworks.- Even extracting the apks from the
.aabusing bundletool and installing them with adb on a device works.
I know that Hermes is running because global.HermesInternal != null, not to mention it's lightning fast 💨.
React Native version: 0.65.0
System:
OS: macOS 10.14.6
CPU: (4) x64 Intel(R) Core(TM) i7-7660U CPU @ 2.50GHz
Memory: 22.53 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 11.6.0 - /usr/local/bin/node
Yarn: 1.12.3 - /usr/local/bin/yarn
npm: 6.8.0 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.4, macOS 10.14, tvOS 12.4, watchOS 5.3
Android SDK:
API Levels: 23, 26, 27, 28, 29
Build Tools: 27.0.3, 28.0.3
System Images: android-26 | Google Play Intel x86 Atom, android-27 | Google Play Intel x86 Atom, android-28 | Intel x86 Atom_64, android-28 | Google APIs Intel x86 Atom, android-29 | Google APIs Intel x86 Atom
IDEs:
Android Studio: 3.5 AI-191.8026.42.35.5791312
Xcode: 10.3/10G8 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.6 => 16.8.6
react-native: 0.60.5 => 0.60.5
npmGlobalPackages:
react-native-cli: 2.0.1
Steps To Reproduce
- Compile and package release build with Hermes enabled
- Upload it to Google Play (Alpha or Beta)
- Once the app is available download and install the version from Google Play
- Launch the app -> White Screen
Describe what you expected to happen:
I expect bundles compiled with Hermes enabled to behave the same after being uploaded to Google Play.
Snack, code example, screenshot, or link to a repository:
- My build.gradle
- Device logs from
adb logcatwhen launching the Play Store version of the app: hermes-prod-logs.txt
Activity
[-]Bundle compiled with Hermes causes white screen when installed from Google Play[/-][+]Hermes enabled bundle causes white screen when installed from Google Play[/+]anurag060 commentedon Sep 12, 2019
Facing the same issue @desmondmc. Recently upgraded my project from 0.57.8 to 0.60.5. Also enabled def enableSeparateBuildPerCPUArchitecture = true and def enableProguardInReleaseBuilds = true. Can you please write here if you find a solution
anurag060 commentedon Sep 12, 2019
@desmondmc try uploading the apks instead of the app bundle. In my case, uploading the app bundle to the play store showed a white blank screen on start up. But, uploading all the apks generated(with def enableSeparateBuildPerCPUArchitecture = true) did the trick. Give it a try.
herio commentedon Sep 21, 2019
Facing the same problem only when upload the bundleRelease to play store, assembleRelease is OK.
"react-native": "0.60.5",
"hermes-engine": "0.1.1",
githubdoramon commentedon Sep 24, 2019
A (terrible) workaround is to first run assembleRelease (so the js bundle is generated), and then run bundleRelease.
I don't think this is related to Hermes though, since even when I disabled it I still have the same problem with bundling the app
desmondmc commentedon Sep 26, 2019
Just tested with
react-native0.61.1. Still broken 😢panvourtsis commentedon Sep 28, 2019
same issue with @herio any test locally on debug or release is working. Only version returning the white screen is from the bundleRelease to play store
react-native: 0.60.4
LydGol90 commentedon Oct 1, 2019
I am getting the same issue, also only when I upload bundle to play store with Hermes enabled. assembleRelease works fine and all works fine with Hermes disabled. RN version 0.61.1
longnk-1447 commentedon Oct 4, 2019
radko93 commentedon Oct 4, 2019
Please upvote the first post, don't post
+1orsame issue. You can subscribe to this issue on the right side.IamMasterWayne commentedon Oct 6, 2019
RichardLindhout commentedon Oct 8, 2019
Alaa-Ben commentedon Oct 8, 2019
Hey guys !
For me, it turned out it was a problem of SoLoader, which was fixed in 0.8.0. React Native 0.61.1 doesn't use this version yet, so the solution was to set it up manually by adding the following to
app/build.gradle:I hope it works for you too :)
66 remaining items
fix: force soLoader to version 0.8.2
mym0404 commentedon Jul 21, 2020
Now, React Native 0.63 is using SO_LOADER
0.8.2. Then can we bundle application as aab without any further configurations?radko93 commentedon Jul 21, 2020
@mym0404 yes, it should work directly.
mrousavy commentedon Aug 11, 2020
I'm on 0.63.2 and this issue is still not fixed for me! Cannot run the Android App in Debug or Release with Hermes enabled or disabled on my Emulator!
desmondmc commentedon Aug 19, 2020
Closing this issue as the original bug as described has been fixed.
goul4rt commentedon Sep 2, 2020
Using this, all work fine in React-Native 0.60.6.
Joshmatjjen commentedon Dec 18, 2020
@SnowLew App Still Crashes on Startup React native After installed from Play Store
"react-native": "^0.63.3",
lukebrandonfarrell commentedon Jan 18, 2021
This still occurs with React Native and Hermes, can we re-open the issue?
goul4rt commentedon Jan 18, 2021
I've try without hermes and works fine, but with hermes this issue continue.
troZee commentedon Apr 13, 2021
In my case I needed to add hermes path for each android flavour
ThinkSalat commentedon May 5, 2021
I'm on react-native 0.63.4 and this is still happening for me when I have hermes enabled. Soon as the app opens up, flashes a white screen and closes. It happens when I do
gradlew assembleReleaseand install to an emulator, as well as an.aabuploaded to the play store.Is there any way to tell which Hermes version you're using?
andre-krueger commentedon Jul 3, 2021
AAB will be required to use in some months and it seems that JSC is more or less abandonware (it also causes a lot of crashes, which were fixed the moment we switched to Hermes).
Please fix this issue.