Expo SplashScreen Warning Android

Please provide the following:

  1. SDK Version: 39
  2. Platforms(Android/iOS/web/all): Android

When opening the app on my android client, I constantly run into following warning:

No native splash screen registered for provided activity. Please configure your application's main Activity to call 'SplashScreen.show' (https://github.com/expo/expo/tree/master/packages/expo-splash-screen#-configure-android).
- node_modules/react-native/Libraries/BatchedBridge/NativeModules.js:103:50 in promiseMethodWrapper
- node_modules/@unimodules/react-native-adapter/build/NativeModulesProxy.native.js:15:23 in moduleName.methodInfo.name
- node_modules/expo-splash-screen/build/SplashScreen.js:23:7 in preventAutoHideAsync
- node_modules/regenerator-runtime/runtime.js:45:36 in tryCatch
- node_modules/regenerator-runtime/runtime.js:274:29 in invoke
- node_modules/regenerator-runtime/runtime.js:45:36 in tryCatch
- node_modules/regenerator-runtime/runtime.js:135:27 in invoke
- node_modules/regenerator-runtime/runtime.js:170:16 in PromiseImpl$argument_0
- node_modules/react-native/node_modules/promise/setimmediate/core.js:45:6 in tryCallTwo
- node_modules/react-native/node_modules/promise/setimmediate/core.js:200:22 in doResolve
- node_modules/react-native/node_modules/promise/setimmediate/core.js:66:11 in Promise
- node_modules/regenerator-runtime/runtime.js:169:15 in callInvokeWithMethodAndArg
- node_modules/regenerator-runtime/runtime.js:192:38 in enqueue
- node_modules/regenerator-runtime/runtime.js:219:8 in exports.async
- node_modules/expo-splash-screen/build/SplashScreen.js:23:7 in preventAutoHideAsync
* http://10.10.21.2:19001/node_modules/expo/AppEntry.bundle?platform=android&dev=true&minify=false&hot=false:125275:83 in componentDidMount$
- node_modules/regenerator-runtime/runtime.js:45:36 in tryCatch
- node_modules/regenerator-runtime/runtime.js:274:29 in invoke
- node_modules/regenerator-runtime/runtime.js:45:36 in tryCatch
- node_modules/regenerator-runtime/runtime.js:135:27 in invoke
- node_modules/regenerator-runtime/runtime.js:170:16 in PromiseImpl$argument_0
- node_modules/react-native/node_modules/promise/setimmediate/core.js:45:6 in tryCallTwo
- node_modules/react-native/node_modules/promise/setimmediate/core.js:200:22 in doResolve
- node_modules/react-native/node_modules/promise/setimmediate/core.js:66:11 in Promise
- node_modules/regenerator-runtime/runtime.js:169:15 in callInvokeWithMethodAndArg
- node_modules/regenerator-runtime/runtime.js:192:38 in enqueue
- node_modules/regenerator-runtime/runtime.js:219:8 in exports.async
* http://10.10.21.2:19001/node_modules/expo/AppEntry.bundle?platform=android&dev=true&minify=false&hot=false:125269:41 in componentDidMount
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:15688:12 in commitLifeCycles
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:18744:22 in commitLayoutEffects
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:265:4 in invokeGuardedCallbackImpl
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:476:2 in invokeGuardedCallback
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:18483:29 in commitRootImpl
* [native code]:null in commitRootImpl
- node_modules/scheduler/cjs/scheduler.development.js:653:23 in unstable_runWithPriority
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:18317:17 in commitRoot
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:17697:12 in performSyncWorkOnRoot
* [native code]:null in performSyncWorkOnRoot
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:5321:31 in runWithPriority$argument_1
- node_modules/scheduler/cjs/scheduler.development.js:653:23 in unstable_runWithPriority
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:5316:21 in flushSyncCallbackQueueImpl
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:5304:28 in flushSyncCallbackQueue
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:17125:30 in scheduleUpdateOnFiber
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:20527:14 in updateContainer
- node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js:21068:17 in render
- node_modules/react-native/Libraries/ReactNative/renderApplication.js:54:4 in renderApplication
- node_modules/react-native/Libraries/ReactNative/AppRegistry.js:117:25 in runnables.appKey.run
- node_modules/react-native/Libraries/ReactNative/AppRegistry.js:213:4 in runApplication
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:416:4 in __callFunction
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:109:6 in __guard$argument_0
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:364:10 in __guard
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:108:4 in callFunctionReturnFlushedQueue
* [native code]:null in callFunctionReturnFlushedQueue

It usually gets thrown twice and I don’t have any idea why. The warning just came up recently after upgrading to SDK 39. Previously it worked without any problems. The link provided in the warning tells me to call SplashScreen.show, even though I am using AppLoading and expo-splash-screen module does not even provide this method.
My SplashScreen is configured like this in the app.json:

"splash": {
      "image": "./assets/Loading.png",
      "resizeMode": "cover",
      "backgroundColor": "#ffffff"
    },

Thanks for the help! Appreciate your work!

4 Likes

Apparently there is a problem with AppLoading, I was using it that way and I went through the same problem.

  if (!ready || !fontsLoaded) {
    return (
      <AppLoading
        startAsync={initAsync}
        onFinish={() => setReady(true)}
      />
    )
  }

I changed it to that, and the alert didn’t appear:

  if (!ready || !fontsLoaded) {
    initAsync().then(() => setReady(true))
    return null
  }

4 Likes

Thanks for the answer! I think there is an underlying problem with expo-splashscreen. I also tried to use it without AppLoading and ran into the same error… Hope they fix it soon

1 Like

Thank you, Felipe. However, as for datmoser, your solution didn’t work for me. Let’s hope they fix this problem quickly!

it’s planned to be part of a minor release that we will be doing as soon as we can

1 Like

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.