question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Android production build splash screen hangs a really long time (more than set by fallbackToCacheTimeout)

See original GitHub issue

As suggested by @brentvatne and @tevonsb in #10463 I report this bug I have been having lately.

🐛 Bug Report

Summary of Issue

Android production build splash screen hangs a really long time (more than set by fallbackToCacheTimeout). It does come through - but it takes a couple of minutes.

Environment - output of expo diagnostics & the platform(s) you’re targeting

$ expo diagnostics
  Expo CLI 3.27.12 environment info:
    System:
      OS: macOS 10.15.7
      Shell: 5.7.1 - /bin/zsh
    Binaries:
      Node: 12.16.3 - ~/.nvm/versions/node/v12.16.3/bin/node
      Yarn: 1.22.5 - ~/.nvm/versions/node/v12.16.3/bin/yarn
      npm: 6.14.8 - ~/.nvm/versions/node/v12.16.3/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    Managers:
      CocoaPods: 1.9.3 - /usr/local/bin/pod
    SDKs:
      iOS SDK:
        Platforms: iOS 14.0, DriverKit 19.0, macOS 10.15, tvOS 14.0, watchOS 7.0
    IDEs:
      Android Studio: 4.0 AI-193.6911.18.40.6626763
      Xcode: 12.0.1/12A7300 - /usr/bin/xcodebuild
    npmPackages:
      expo: ^39.0.0 => 39.0.3 
      react: 16.13.1 => 16.13.1 
      react-native: https://github.com/expo/react-native/archive/sdk-39.0.3.tar.gz => 0.63.2 
      react-navigation: ^4.4.1 => 4.4.2 
    npmGlobalPackages:
      expo-cli: 3.27.12
    Expo Workflow: managed

Reproducible Demo

🍀 Luckily 🍀 this an open source project so the entire code and branch where I attempt to fix it can be found here

https://github.com/Norfeldt/MedBlockChain/tree/fix-loading-time

Steps to Reproduce

  1. Make an android build
  2. install it on a android device (android version 6.0) - I’m using an “old” Honor 7
  3. Enable developer mode
  4. plug in a usb cable to a computer with adb installed
  5. Do the following in the terminal 👇
$ expo publish
- Expo SDK: 39.0.0
- Release channel: default
- Workflow: Managed

Building optimized bundles and generating sourcemaps...
Starting Metro Bundler.
Building iOS bundle
Building Android bundle
Finished building JavaScript bundle in 43693ms.
Building source maps
Finished building JavaScript bundle in 33653ms.
Finished building JavaScript bundle in 401ms.
Finished building JavaScript bundle in 205ms.
Building asset maps
Finished building JavaScript bundle in 2053ms.
Finished building JavaScript bundle in 1926ms.

Bundle                     Size
┌ index.ios.js          2.19 MB
├ index.android.js       2.2 MB
├ index.ios.js.map      6.61 MB
└ index.android.js.map  6.63 MB

Learn more about JavaScript bundle sizes: https://expo.fyi/javascript-bundle-sizes

Analyzing assets
Saving assets
No assets changed, skipped.

Processing asset bundle patterns:
- /Users/norfeldt/Repos/MedBlockChain/assets/**/*

Uploading JavaScript bundles
Publish complete

📝  Manifest: https://exp.host/@norfeldtconsulting/medblockchain/index.exp?sdkVersion=39.0.0 Learn more: https://expo.fyi/manifest-url
⚙️   Project page: https://expo.io/@norfeldtconsulting/medblockchain Learn more: https://expo.fyi/project-page

$ adb logcat -c
int logctl_get(): open '/dev/hwlog_switch' fail -1, 13. Permission denied

Note: log switch off, only log_main and log_events will have logs!

$ adb logcat | grep 'error\|warn\|java\|expo' --ignore-case | grep -v 'TempMonitor\|ThermalStateManager' --ignore-case

10-06 11:01:46.943 21413 21425 E linker  : warning: unable to get realpath for the library "/system/lib64/hw/gralloc.hi3635.so". Will use given name.
10-06 11:01:46.943 21413 21425 E linker  : warning: unable to get realpath for the library "libion.so". Will use given name.
10-06 11:01:47.057 21413 21434 E linker  : warning: unable to get realpath for the library "/data/data/com.google.android.gms/app_chimera/m/00000097/oat/arm64/DynamiteLoader.odex". Will use given name.
10-06 11:01:47.094 21413 21434 E linker  : warning: unable to get realpath for the library "/data/data/com.google.android.gms/app_chimera/m/0000006c/oat/arm64/dl-AdsFdrDynamite.integ_22060000008.odex". Will use given name.
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:36)
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:9)
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at com.facebook.internal.FacebookInitProvider.onCreate(FacebookInitProvider.java:1)
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at android.content.ContentProvider.attachInfo(ContentProvider.java:1748)
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at android.content.ContentProvider.attachInfo(ContentProvider.java:1723)
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at android.app.ActivityThread.installProvider(ActivityThread.java:5322)
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at android.app.ActivityThread.installContentProviders(ActivityThread.java:4843)
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4774)
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at android.app.ActivityThread.access$1600(ActivityThread.java:165)
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1437)
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at android.os.Handler.dispatchMessage(Handler.java:102)
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at android.os.Looper.loop(Looper.java:150)
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at android.app.ActivityThread.main(ActivityThread.java:5621)
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at java.lang.reflect.Method.invoke(Native Method)
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
10-06 11:01:47.108 21413 21413 I FacebookInitProvider: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684)
10-06 11:01:47.202 21413 21449 E linker  : warning: unable to get realpath for the library "/data/data/com.norfeldt.medblockchain/app_optimized/audience_network.dex". Will use given name.
10-06 11:01:47.297  4344  4358 I HwLauncher: Launcher.LauncherProvider  call isCloned = false  className = host.exp.exponent.MainActivity
10-06 11:01:47.304  4344  4451 I HwLauncher: BadgeContentObserver onChange() : mComponentName = ComponentInfo{com.norfeldt.medblockchain/host.exp.exponent.MainActivity} com.huawei.android.launcher.BadgeContentObserver@ee8f359
10-06 11:01:47.607 21413 21469 E linker  : warning: unable to get realpath for the library "libhwaps.so". Will use given name.
10-06 11:01:47.611 21413 21469 E linker  : warning: unable to get realpath for the library "/system/lib64/libhwuibp.so". Will use given name.
10-06 11:01:47.662  3366  3480 I ActivityManager: Displayed com.norfeldt.medblockchain/host.exp.exponent.MainActivity: +794ms
10-06 11:01:47.810  4344  4451 I HwLauncher: BadgeContentObserver  getBadgeNumber: 0 mComponentName :ComponentInfo{com.norfeldt.medblockchain/host.exp.exponent.MainActivity}
10-06 11:01:47.810  4344  4451 I HwLauncher: BadgeContentObserver newBadgeNumber:0,oldBadgeNumber:0 mComponentName : ComponentInfo{com.norfeldt.medblockchain/host.exp.exponent.MainActivity}
10-06 11:01:49.543 21413 21413 E e       : java.lang.RuntimeException: A TaskDescription's primary color should be opaque
10-06 11:01:49.550 21413 21413 E e       : java.lang.RuntimeException: A TaskDescription's primary color should be opaque
10-06 11:01:49.572  3366  4117 W System.err: java.lang.SecurityException: WifiService: Neither user 10108 nor current process has android.permission.CHANGE_WIFI_STATE.
10-06 11:01:49.573  3366  4117 W System.err: 	at android.app.ContextImpl.enforce(ContextImpl.java:1595)
10-06 11:01:49.573  3366  4117 W System.err: 	at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:1627)
10-06 11:01:49.573  3366  4117 W System.err: 	at com.android.server.wifi.WifiServiceImpl.enforceChangePermission(WifiServiceImpl.java:671)
10-06 11:01:49.573  3366  4117 W System.err: 	at com.android.server.wifi.WifiServiceImpl.getWifiServiceMessenger(WifiServiceImpl.java:1838)
10-06 11:01:49.573  3366  4117 W System.err: 	at android.net.wifi.IWifiManager$Stub.onTransact(IWifiManager.java:558)
10-06 11:01:49.573  3366  4117 W System.err: 	at com.android.server.wifi.HwWifiService.onTransact(HwWifiService.java:284)
10-06 11:01:49.573  3366  4117 W System.err: 	at android.os.Binder.execTransact(Binder.java:453)
10-06 11:01:49.874 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$GroupViewManager
10-06 11:01:49.875 21413 21523 W art     : Before Android 4.1, method void versioned.host.exp.exponent.modules.api.components.svg.VirtualView.setPointerEvents(com.facebook.react.uimanager.PointerEvents) would have incorrectly overridden the package-private method in com.facebook.react.views.view.ReactViewGroup
10-06 11:01:49.890 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$RenderableShadowNode
10-06 11:01:49.892 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$PathViewManager
10-06 11:01:49.894 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$CircleViewManager
10-06 11:01:49.897 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$EllipseViewManager
10-06 11:01:49.902 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$LineViewManager
10-06 11:01:49.910 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$RectViewManager
10-06 11:01:49.913 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$TextViewManager
10-06 11:01:49.920 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$TSpanViewManager
10-06 11:01:49.923 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$TextPathViewManager
10-06 11:01:49.927 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$ImageViewManager
10-06 11:01:49.930 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$ClipPathViewManager
10-06 11:01:49.931 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$DefsViewManager
10-06 11:01:49.932 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$UseViewManager
10-06 11:01:49.934 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$SymbolManager
10-06 11:01:49.938 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$LinearGradientManager
10-06 11:01:49.942 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$RadialGradientManager
10-06 11:01:49.946 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$PatternManager
10-06 11:01:49.950 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$MaskManager
10-06 11:01:49.953 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$ForeignObjectManager
10-06 11:01:49.956 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.RenderableViewManager$MarkerManager
10-06 11:01:49.959 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.svg.SvgViewManager
10-06 11:01:49.963 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.maps.AirMapCalloutManager
10-06 11:01:49.965 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.maps.AirMapMarkerManager
10-06 11:01:49.973 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.maps.AirMapPolylineManager
10-06 11:01:49.977 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.maps.AirMapGradientPolylineManager
10-06 11:01:49.980 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.maps.AirMapPolygonManager
10-06 11:01:49.983 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.maps.AirMapCircleManager
10-06 11:01:49.991 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.maps.AirMapManager
10-06 11:01:50.001 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.maps.AirMapLiteManager
10-06 11:01:50.002 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.maps.AirMapUrlTileManager
10-06 11:01:50.006 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.maps.AirMapWMSTileManager
10-06 11:01:50.010 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.maps.AirMapLocalTileManager
10-06 11:01:50.013 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.maps.AirMapOverlayManager
10-06 11:01:50.016 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.maps.AirMapHeatmapManager
10-06 11:01:50.019 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.lottie.LottieAnimationViewManager
10-06 11:01:50.023 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.gesturehandler.react.RNGestureHandlerRootViewManager
10-06 11:01:50.025 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.gesturehandler.react.RNGestureHandlerButtonViewManager
10-06 11:01:50.028 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.screens.ScreenContainerViewManager
10-06 11:01:50.033 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.screens.ScreenViewManager
10-06 11:01:50.036 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.screens.ScreenStackViewManager
10-06 11:01:50.038 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.screens.ScreenStackHeaderConfigViewManager
10-06 11:01:50.043 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.screens.ScreenStackHeaderSubviewManager
10-06 11:01:50.046 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.webview.RNCWebViewManager
10-06 11:01:50.058 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.safeareacontext.SafeAreaProviderManager
10-06 11:01:50.061 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.safeareacontext.SafeAreaViewManager
10-06 11:01:50.064 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.safeareacontext.SafeAreaViewShadowNode
10-06 11:01:50.069 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.sharedelement.RNSharedElementTransitionManager
10-06 11:01:50.072 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.maskedview.RNCMaskedViewManager
10-06 11:01:50.075 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.picker.ReactDialogPickerManager
10-06 11:01:50.079 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.picker.ReactDropdownPickerManager
10-06 11:01:50.080 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.slider.ReactSliderManager
10-06 11:01:50.092 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.slider.ReactSliderManager$ReactSliderShadowNode
10-06 11:01:50.095 21413 21523 W unknown:ViewManagerPropertyUpdater: Could not find generated setter for class versioned.host.exp.exponent.modules.api.components.viewpager.ReactViewPagerManager

Expected Behavior vs Actual Behavior

Wouldn’t have expected all of these warnings/errors and that it would have waiting max of what is stated in the app.json

    "updates": {
      "fallbackToCacheTimeout": 10000
    },

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:6 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
Norfeldtcommented, Oct 23, 2020

I found out that this was because I had to change the QR Code react native library to something that renders really slow (https://www.npmjs.com/package/react-native-custom-qr-codes-expo). Changed it to one that is much faster and now everything is butter smooth.

1reaction
karimcambridgecommented, Oct 21, 2020

I have the issue in all of my projects.

Read more comments on GitHub >

github_iconTop Results From Across the Web

App is stuck on Splash screen - Expo Development Tools
From March 21 2022 onwards the builds pushed to TestFlight and Google Play are not working. The app is stuck on the splash...
Read more >
flutter android app freezes on the splash screen in release mode
By default on Android, android:allowBackup is set to true which means ... which was backed up, it will freeze on the native splash...
Read more >
Splash screens - Android Developers
If the app startup time is longer than 1,000 ms, consider a looping animation. Establish an appropriate time to dismiss the splash screen,...
Read more >
flutter_native_splash | Flutter Package - Pub.dev
Customize Flutter's default white native splash screen with background color and splash image. Supports dark mode, full screen, and more.
Read more >
How to Design a Splash Screen With Expo and React Native
Configuring the Icons for Android. In Android, we have to do some extra configuration beyond specifying the icon in app.json. You can learn...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found