GithubHelp home page GithubHelp logo

zoontek / react-native-bootsplash Goto Github PK

View Code? Open in Web Editor NEW
3.5K 3.5K 245.0 22.13 MB

🚀 Show a splash screen during app startup. Hide it when you are ready.

License: MIT License

Ruby 2.70% Java 20.74% JavaScript 9.52% Objective-C 0.86% TypeScript 44.85% Objective-C++ 9.09% HTML 8.53% Kotlin 3.72%
bootsplash react react-native splash-screen splashscreen

react-native-bootsplash's People

Contributors

738 avatar aaronwitter avatar ajaykumar97 avatar andresesfm avatar arnaudambro avatar azimat avatar bardiamist avatar bloodyowl avatar cabelin avatar cawfree avatar ddikodroid avatar dependabot[bot] avatar dimatretyak avatar elliotdickison avatar fan avatar isair avatar jdmathew avatar mikehardy avatar mokhajavi75 avatar moox avatar naturalclar avatar nidelson avatar protino avatar rhdeck avatar sharplet avatar slavikdenis avatar spencercarli avatar srmagura avatar vikrantnegi avatar zoontek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

react-native-bootsplash's Issues

A method to show the splash screen again

💻 My environment

  • react-native-bootsplash version: 1.2.1
  • react-native version: 0.61.5
  • Platform: both
  • OS version: ? mac 10.14
  • Device: Macbook pro 13
  • Simulator: yes

Thanks for the library.

Currently, there seems to be no method to show the splash screen again. For example, react-native-splash screen has the .show() method.

Is there any plans to implement such method?

Android staging build splash screen did not disappear

💻 My environment

  • react-native-bootsplash version: 0.1.1
  • react-native version: 0.60.4
  • Platform: android
  • OS version: 9
  • Device: Pixel 1
  • Simulator: Simulator work
  • Android Studio version: 3.4.1
  • Android buildToolsVersion: 28.0.3
  • Xcode version: iOS work

🕵️‍♂️ Reproducing the issue

app/android/build.gradle

android {
    compileSdkVersion rootProject.ext.compileSdkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        applicationId "MY_APPLICATION_ID"
        minSdkVersion 23
        targetSdkVersion 26
        versionCode 182
        versionName "2.0.0"
        multiDexEnabled true
        ndk {
            abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
        vectorDrawables.useSupportLibrary = true
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
    }
    signingConfigs {
        debug {
            storeFile file('debug.keystore')
            storePassword '123123123'
            keyAlias 'debug'
            keyPassword '123123123'
        }
        release {
            if (project.hasProperty('APP_RELEASE_STORE_FILE')) {
                storeFile file(APP_RELEASE_STORE_FILE)
                storePassword APP_RELEASE_STORE_PASSWORD
                keyAlias APP_RELEASE_KEY_ALIAS
                keyPassword APP_RELEASE_KEY_PASSWORD
            }
        }
    }
     buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
       // Add Build type staging
        staging { 
            applicationIdSuffix ".staging"
            matchingFallbacks = ['release']
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
        }
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
        }
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // https://developer.android.com/studio/build/configure-apk-splits.htmlhttp://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
            def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }
        }
    }

    packagingOptions {
        pickFirst '**/armeabi-v7a/libc++_shared.so'
        pickFirst '**/x86/libc++_shared.so'
        pickFirst '**/arm64-v8a/libc++_shared.so'
        pickFirst '**/x86_64/libc++_shared.so'
        pickFirst '**/x86/libjsc.so'
        pickFirst '**/armeabi-v7a/libjsc.so'
    }
}

Then build the staging build using Android Studio. After that, install the api in real device.

Expected behaviour:

Boot splash screen disappear and show my app main screen.

Actually happens:

The boot splash did not disappear after long waiting time.

Here are the log from Logcat:

2019-08-13 17:10:10.967 878-913/? W/BroadcastQueue: Background execution not allowed: receiving Intent { act=com.google.android.systemui.OPA_ENABLED flg=0x10000010 (has extras) } to com.google.android.apps.nexuslauncher/.qsb.OPAStatusReceiver
2019-08-13 17:10:23.650 32658-32658/? E/mberapp.stagin: Not starting debugger since process cannot load the jdwp agent.
2019-08-13 17:10:23.767 32658-32658/? W/com.facebook.UserSettingsManager: Please set a value for AutoLogAppEventsEnabled. Set the flag to TRUE if you want to collect app install, app launch and in-app purchase events automatically. To request user consent before collecting data, set the flag value to FALSE, then change to TRUE once user consent is received. Learn more: https://developers.facebook.com/docs/app-events/getting-started-app-events-android#disable-auto-events.
2019-08-13 17:10:23.767 32658-32658/? W/com.facebook.UserSettingsManager: You haven't set a value for AdvertiserIDCollectionEnabled. Set the flag to TRUE if you want to collect Advertiser ID for better advertising and analytics results. To request user consent before collecting data, set the flag value to FALSE, then change to TRUE once user consent is received. Learn more: https://developers.facebook.com/docs/app-events/getting-started-app-events-android#disable-auto-events.
2019-08-13 17:10:23.865 32658-32658/? W/System.err: java.lang.ClassNotFoundException: MY_APPLICATION_ID.staging.MainActivity
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at java.lang.Class.classForName(Native Method)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at java.lang.Class.forName(Class.java:453)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at java.lang.Class.forName(Class.java:378)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at com.zoontek.rnbootsplash.RNBootSplashActivity.onCreate(RNBootSplashActivity.java:15)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at android.app.Activity.performCreate(Activity.java:7144)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at android.app.Activity.performCreate(Activity.java:7135)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2931)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:106)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at android.os.Looper.loop(Looper.java:193)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6718)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
2019-08-13 17:10:23.865 32658-32658/? W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
2019-08-13 17:10:23.866 32658-32658/? W/System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "MY_APPLICATION_ID.staging.MainActivity" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/MY_APPLICATION_ID.staging-gadIS1fm0tvapmwDqwGyiA==/base.apk"],nativeLibraryDirectories=[/data/app/MY_APPLICATION_ID.staging-gadIS1fm0tvapmwDqwGyiA==/lib/arm64, /data/app/MY_APPLICATION_ID.staging-gadIS1fm0tvapmwDqwGyiA==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]
2019-08-13 17:10:23.866 32658-32658/? W/System.err:     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
2019-08-13 17:10:23.866 32658-32658/? W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
2019-08-13 17:10:23.866 32658-32658/? W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
2019-08-13 17:10:23.866 32658-32658/? W/System.err: 	... 19 more
2019-08-13 17:10:24.169 491-595/? W/SurfaceFlinger: Attempting to set client state on removed layer: Splash Screen MY_APPLICATION_ID.staging#0
2019-08-13 17:10:24.170 491-595/? W/SurfaceFlinger: Attempting to destroy on removed layer: Splash Screen MY_APPLICATION_ID.staging#0
2019-08-13 17:10:24.378 32507-32567/? W/SearchServiceCore: Abort, client detached.

I noted that this line will return MY_APPLICATION_ID.staging.MainActivity, which is not existed in the source code. The source code only have MY_APPLICATION_ID.MainActivity.java file.

So my concern is this is expected behaviour? This lib does not support multiple build type? If it is expected behaviour, any workaround to make it work?

Last time I use react-native-splash-screen lib, it works well for both staging and release builds.

Thank you.

Question about RNBootSplashActivity

💻 My environment

  • react-native-bootsplash version: 1.2.1
  • react-native version: 0.61.5
  • Platform: android
  • OS version: Catalina
  • Device: S10+
  • Simulator: no
  • Android Studio version: -
  • Android buildToolsVersion: -
  • Xcode version: -

🕵️‍♂️ Question

I’m wondering what’s the purpose of RNBootSplashActivity? I tried without it, and the splash screen still appeared immediately.

ViewGroup.removeView on null object reference

Hi! Thanks for this awesome lib! Today I found a weird crash report coming from bootsplash. It has only been reported by a specific device so far, here are the details:

💻 My environment

  • react-native-bootsplash version: 1.2.1
  • react-native version: 0.61.5
  • Platform: Android
  • OS version: 5.0
  • Device: Samsung Galaxy Note 3
  • Android buildToolsVersion: ?

🕵️‍♂️ Reproducing the issue

I'm not sure how, but I think it's kinda my fault but perhaps it should also be addressed by this library if it hasn't already. I got two places where I call the method to hide the bootsplash:

// ... somewhere in my boot "sequence"
useEffect(() => {
  // If for some reason we take more than 2 seconds to boot
  // this hides bootsplash and shows a spinner
  setTimeout(() => RNBootSplash.hide(200), 2000);
}, []);

useEffect(() => {
  // Wait until we're ready to show the splashscreen
  if (platformReady) {
    RNBootSplash.hide(200);
  }
}, [platformReady]);

I'm guessing that the second call to RNBootSplash.hide could fail in this particular config because the View no longer exists and bootsplash doesn't handle that case? I wasn't handling that particular case because... well, I assumed it would just do nothing 😅

This problem doesn't seem to affect any other device yet, but I'll keep an eye on it.

Stacktrace
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.ViewGroup.removeView(android.view.View)' on a null object reference
       at com.zoontek.rnbootsplash.RNBootSplashModule$1$1.onAnimationEnd(RNBootSplashModule.java)
       at android.view.ViewPropertyAnimator$AnimatorEventListener.onAnimationEnd(ViewPropertyAnimator.java:1116)
       at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1089)
       at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:666)
       at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:682)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777)
       at android.view.Choreographer.doCallbacks(Choreographer.java:590)
       at android.view.Choreographer.doFrame(Choreographer.java:559)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:145)
       at android.app.ActivityThread.main(ActivityThread.java:5942)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

🤞Solution

I'm not sure. Perhaps checking if the reference is not null before calling removeView? I'll try to add a check on the React side to avoid calling RNBootSplash.hide twice and see if this fixes the issue for me.

I'm not an Android dev, so I haven't checked the code to see if perhaps that's exactly what happened here.

Splash screen jump

The splash screens are misaligned and cause jump similar to the react-native-splash-screen.

Tested on Pixel 3 XL emulator and real device 19:8 aspect ratio.

Installed the latest version and followed the instructions on https://www.npmjs.com/package/react-native-bootsplash almost the same

The differences are
Styles.xml

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:textColor">#000000</item>
        <item name="android:statusBarColor">@color/statusbar</item>
        <item name="android:windowLightStatusBar">true</item>

        <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
    </style>

    <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:background">@drawable/background_splash</item>
        <item name="android:statusBarColor">@color/splash</item>
        <item name="android:windowLightStatusBar">true</item>
        <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
    </style>
</resources>

background_splash

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
  <item android:drawable="@color/splash" />

  <item
        android:width="222dp"
        android:height="222dp"
        android:drawable="@mipmap/icon"
        android:gravity="center" />
</layer-list>

Why is this happening?

Issue with React Native Firebase.

💻 My environment

"dependencies": {
    "react": "16.8.6",
    "react-native": "0.60.5",
    "react-native-bootsplash": "^1.0.0",
    "react-native-firebase": "^5.5.6",
    "react-native-gesture-handler": "^1.4.1",
    "react-native-reanimated": "^1.2.0",
    "react-navigation": "^3.12.0"
  },
  • Platform: android
  • OS version: 8.1
  • Device: All
  • Simulator: no
  • Android buildToolsVersion: 3.4.1

🕵️‍♂️ Reproducing the issue

I have used React native firebase for push notifications. When I have opened the app and if I am getting a push notification, I can get the _body & title details in the .onNotification() callback of firebase.

But, in this callback function .onNotificationOpened(), _body & title are null, please check below screenshot.

image

🤞Solution

I think its because of the bootsplash, I am getting that error. So please give me a solution.

Execution failed for task ':app:transformClassesWithMultidexlistForDebug'

💻 My environment

react-native info

System:
    OS: macOS 10.14.6
    CPU: (4) x64 Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
    Memory: 476.77 MB / 16.00 GB
    Shell: 5.3 - /bin/zsh
  Binaries:
    Node: 10.16.1 - /usr/local/bin/node
    npm: 6.13.4 - ~/.npm-global/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
  IDEs:
    Android Studio: 3.5 AI-191.8026.42.35.6010548
    Xcode: 10.3/10G8 - /usr/bin/xcodebuild
  npmPackages:
    @react-native-community/cli: ^3.0.4 => 3.0.4
    react: 16.8.6 => 16.8.6
    react-native: 0.60.4 => 0.60.4

react-native-bootsplash

"react-native-bootsplash": "^1.2.1"

🕵️‍♂️ Reproducing the issue

I have installed react-native-bootsplash and followed exactly all the information in the README!
However, I have a problem, when I try to compile my project, since I installed the package I get an error: Error while merging dex archives

This is my error:

> Task :app:transformClassesWithMultidexlistForDebug FAILED

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings
345 actionable tasks: 4 executed, 341 up-to-date
D8: Program type already present: io.sentry.ArrayUtil$1

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
> com.android.build.api.transform.TransformException: Error while generating the main dex list:
  Error while merging dex archives:
  Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
  Program type already present: io.sentry.ArrayUtil$1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 13s

error Failed to install the app. Make sure you have the Android development environment set up: https://facebook.github.io/react-native/docs/getting-started.html#android-development-environment. Run CLI with --verbose flag for more details.
Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081
D8: Program type already present: io.sentry.ArrayUtil$1

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
> com.android.build.api.transform.TransformException: Error while generating the main dex list:
  Error while merging dex archives:
  Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
  Program type already present: io.sentry.ArrayUtil$1

I tried to use a command I could see on the internet to get the stacktrace and try to find the error but after reading it many times, I can't see where the error comes from, maybe I missed something?

the command is: ./gradlew installDebug --stacktrace
and this is the result: (sorry it's very verbose)

* What went wrong:
Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
> com.android.build.api.transform.TransformException: Error while generating the main dex list:
  Error while merging dex archives:
  Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
  Program type already present: io.sentry.ArrayUtil$1

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:151)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:148)
        at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:191)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:141)
        at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
        at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
        at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:73)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
        at org.gradle.execution.plan.DefaultPlanExecutor.process(DefaultPlanExecutor.java:74)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.executeWithServices(DefaultTaskExecutionGraph.java:178)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.execute(DefaultTaskExecutionGraph.java:154)
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:41)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:40)
        at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:24)
        at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:46)
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:49)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:40)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:33)
        at org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:383)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.initialization.DefaultGradleLauncher.runTasks(DefaultGradleLauncher.java:247)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:159)
        at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:134)
        at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:58)
        at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:55)
        at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:82)
        at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:75)
        at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:183)
        at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
        at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:75)
        at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:55)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:31)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:58)
        at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
        at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:39)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:51)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:45)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:49)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:46)
        at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:78)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:46)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31)
        at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42)
        at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52)
        at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:59)
        at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:36)
        at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68)
        at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:38)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26)
        at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
        at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:81)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: Error while generating the main dex list:
Error while merging dex archives:
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: io.sentry.ArrayUtil$1
        at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55)
        at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104)
        at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
        at org.gradle.api.internal.project.taskfactory.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:46)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
        at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$5.run(ExecuteActionsTaskExecuter.java:404)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:393)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:376)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:80)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:213)
        at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:32)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
        at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:58)
        at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:33)
        at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:39)
        at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
        at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
        at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:35)
        at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
        at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:45)
        at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:31)
        at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:201)
        at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:70)
        at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:45)
        at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
        at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:43)
        at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:32)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:77)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:90)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:48)
        at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:120)
        ... 126 more
Caused by: com.android.build.api.transform.TransformException: Error while generating the main dex list:
Error while merging dex archives:
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: io.sentry.ArrayUtil$1
        at com.android.build.gradle.internal.transforms.D8MainDexListTransform.transform(D8MainDexListTransform.kt:147)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
        at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
        ... 181 more
Caused by: com.android.builder.multidex.D8MainDexList$MainDexListException: Error while merging dex archives:
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: io.sentry.ArrayUtil$1
        at com.android.builder.multidex.D8MainDexList.getExceptionToRethrow(D8MainDexList.java:107)
        at com.android.builder.multidex.D8MainDexList.generate(D8MainDexList.java:95)
        at com.android.build.gradle.internal.transforms.D8MainDexListTransform.transform(D8MainDexListTransform.kt:131)
        ... 184 more
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
        at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:81)
        at com.android.tools.r8.utils.ExceptionUtils.withMainDexListHandler(ExceptionUtils.java:55)
        at com.android.tools.r8.GenerateMainDexList.run(GenerateMainDexList.java:139)
        at com.android.builder.multidex.D8MainDexList.generate(D8MainDexList.java:93)
        ... 185 more
Caused by: com.android.tools.r8.utils.AbortException: Error: Program type already present: io.sentry.ArrayUtil$1
        at com.android.tools.r8.utils.Reporter.failIfPendingErrors(Reporter.java:101)
        at com.android.tools.r8.utils.Reporter.fatalError(Reporter.java:72)
        at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:66)
        ... 188 more

What can I do to fix this error?

Thanks,

vjovanov

Splash screen not hiding iOS; handleJavaScriptDidFailToLoad

👋 Hello!

First of all thanks for making this product. Seems there was need for a new splash screen package next to react-native-splash-screen. I've installed it yesterday and it seems to work on Android, but on iOS I'm getting the following error in xcode:

2019-09-04 09:55:44.408609+0200 Jobner[6735:2992237] +[RNBootSplash handleJavaScriptDidFailToLoad:]: unrecognized selector sent to class 0x104997c80
2019-09-04 09:55:44.409344+0200 Jobner[6735:2992237] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[RNBootSplash handleJavaScriptDidFailToLoad:]: unrecognized selector sent to class 0x104997c80'
*** First throw call stack:

The app is opening and the splash screen is show. But - as the error suggests with handleJavaScriptDidFailToLoad - it never disappears and the app doesn't continue to load.

Any idea?

💻 My environment

  • react-native-bootsplash version: 1.0.0
  • react-native version: 0.60.5
  • Platform: iOS
  • OS version: 12.1.4
  • Device: iPhone X
  • Simulator: No
  • Xcode version: Version 10.3 (10G8)

🕵️‍♂️ Reproducing the issue

I've installed it following the README. Just after I've updated my project from 0.59.9 to 0.60.5, since react-native-splash-screen gave a lot of error and didn't seem to be supported anymore. So I tried this one.

Then I'd run the project via xcode with an iPhone X connected. The project builds without issues (message build succeeded is shown), but the issue appears when opening the app.

Screenshot 2019-09-04 at 10 34 18

I cannot see any splash screen in IOS device, only react native app name screen is visible ,what is .xib support ?

💻 My environment

  • react-native-bootsplash version:
  • react-native version:
  • Platform: ios / android / both
  • OS version: ?
  • Device: brand + model
  • Simulator: yes / no
  • Android Studio version: ?
  • Android buildToolsVersion: ?
  • Xcode version: ?

🕵️‍♂️ Reproducing the issue

Explain what you did, what you expected to happen, and what actually happens.
Provide some code or screenshots if needed.

🤞Solution

Do you know what needs to be done to address this issue?
Ideally, provide a pull request with a fix.

'RNSplashScreen.h' file not found

💻 My environment

  • react-native-bootsplash version: 1.0.3
  • react-native version: 0.61.4
  • Platform: ios
  • OS version: 13
  • Device: n/a
  • Simulator: n/a
  • Android Studio version: n/a
  • Android buildToolsVersion: n/a
  • Xcode version: 11.1

🕵️‍♂️ Reproducing the issue

I npm installed the package and expected it to autolink. But it did not. Got the error on build:

'RNSplashScreen.h' file not found

🤞Solution

Do you know what needs to be done to address this issue?
Ideally, provide a pull request with a fix.

How to stretch pictures to full screen according to screen size

💻 My environment

  • react-native-bootsplash version:1.2.1
  • react-native version:0.61.5
  • Platform: ios / android / both android
  • OS version: 8.0
  • Device: brand + model
  • Simulator: yes
  • Android Studio version: 3.5.3
  • Android buildToolsVersion: ?
  • Xcode version: ?

🕵️‍♂️ Reproducing the issue

I want to spread a large picture over the whole screen, but the picture is beyond the scope of the screen, without width and height scaling.

Crash on android 10

💻 My environment

  • react-native-bootsplash version: 1.0.3
  • react-native version: 0.61.5
  • Platform: android
  • OS version: 10
  • Device: emulator
  • Simulator: yes
  • Android buildToolsVersion: 28

🕵️‍♂️ Reproducing the issue

Crashed on startup

java.lang.RuntimeException: Unable to start activity ComponentInfo{co.inskate/com.zoontek.rnbootsplash.RNBootSplashActivity}: android.content.res.Resources$NotFoundException: Drawable co.inskate:drawable/bootsplash with resource ID #0x7f07005e

Due to

Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #6: tag requires a 'drawable' attribute or child tag defining a drawable

🤞Solution

In you readme we created


<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
  <!-- the background color. it can be a system color or a custom one defined in colors.xml -->
  <item android:drawable="@android:color/white" />

  <item>
    <!-- the app logo, centered horizontally and vertically -->
    <bitmap
      android:src="@mipmap/ic_launcher"
      android:gravity="center" />
  </item>
</layer-list>

but must be something like

  <item  android:drawable="@android:color/white">
    <!-- the app logo, centered horizontally and vertically -->
    <bitmap
      android:src="@mipmap/ic_launcher"
      android:gravity="center" />
  </item>

Thank you for your work.

Android splash screen image jumps slightly when loading

💻 My environment

    OS: macOS 10.14.6
    CPU: (4) x64 Intel(R) Core(TM) i7-6567U CPU @ 3.30GHz
    Memory: 54.65 MB / 16.00 GB
    Shell: 5.7.1 - /usr/local/bin/zsh
  Binaries:
    Node: 10.15.3 - /var/folders/fc/dg0hjk2n5lg7g8brjxyfhx6h0000gn/T/yarn--1567232771367-0.714416577935092/node
    Yarn: 1.17.3 - /var/folders/fc/dg0hjk2n5lg7g8brjxyfhx6h0000gn/T/yarn--1567232771367-0.714416577935092/yarn
    npm: 6.4.1 - ~/.asdf/installs/nodejs/10.15.3/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, 24, 27, 28
      Build Tools: 27.0.3, 28.0.3
      System Images: android-23 | Google APIs Intel x86 Atom, android-24 | Google APIs Intel x86 Atom
  IDEs:
    Android Studio: 3.4 AI-183.6156.11.34.5692245
    Xcode: 10.3/10G8 - /usr/bin/xcodebuild
  npmPackages:
    @react-native-community/cli: ^2.9.0 => 2.9.0
    react: 16.9.0 => 16.9.0
    react-native: 0.61.0-rc.0 => 0.61.0-rc.0

🕵️‍♂️ Reproducing the issue

Splash screen on some Android devices jumps slightly when loaded

🤞Solution

There are a couple solutions in this issue but none of them seem to be working on all devices.

Wondering if anyone else is seeing the same behavior and has any good fixes.

Deep Linking

💻 My environment

  • react-native-bootsplash version: 1.0.3
  • react-native version: 0.61.5
  • Platform: android
  • OS version: Win 8.1
  • Device: Samsung galaxy 7 edge
  • Simulator: no
  • Android Studio version: -
  • Android buildToolsVersion: 28.0.3
  • Xcode version: -

🕵️‍♂️ Reproducing the issue

I want to set up deep linking with react-navigation as described here. I finally made it but the problem is when i open the app using the deep link, I get my props as undefined but if i reload the app, i see it!
It's somehow weird!

AndroidManifest.xml

<application
  android:name=".MainApplication"
  android:label="@string/app_name"
  android:icon="@mipmap/ic_launcher"
  android:roundIcon="@mipmap/ic_launcher_round"
  android:allowBackup="false"
  android:theme="@style/AppTheme">

  <activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="adjustPan"
    android:exported="true"
    android:launchMode="singleTask">

    <!-- Deep Linking -->
    <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="aramesh" />
    </intent-filter>
  </activity>

  <!-- Splash Screen -->
  <activity
    android:name="com.zoontek.rnbootsplash.RNBootSplashActivity"
    android:theme="@style/BootTheme">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
  </activity>

  <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>

Router.js

_Landing: {
  screen: Landing,
  path: 'agent/:personID'
},

Code

componentDidMount() {
  alert(this.props.navigation.getParam('personID'));
}

🤞Solution

I guess it's somehow related to #24 which has been solved via #11. But i can't understand why i get this as undefined for the first time 😐

TypeError: null is not an object (evaluating 'RNBootSplash.hide')

💻 My environment

  • react-native-bootsplash version: ^1.0.3
  • react-native version: 0.61.4
  • Platform: ios
  • OS version: macOS Catalina v10.15.1
  • Device: iPhone 11
  • Simulator: yes
  • Android Studio version: n/a
  • Android buildToolsVersion: n/a
  • Xcode version: 11.2.1

🕵️‍♂️ Reproducing the issue

  1. yarn add react-native-bootsplash
  2. Follow exact steps in https://github.com/zoontek/react-native-bootsplash#setup
  3. Add RNBootSplash to App.tsx
import * as React from 'react';
import RNBootSplash from "react-native-bootsplash";
import AsyncStorage from '@react-native-community/async-storage';
import { AppNavigator } from './Navigation';
import { ApolloProvider, ApolloClient, createHttpLink, InMemoryCache } from '@apollo/client';
import { setContext } from 'apollo-link-context';

const httpLink = createHttpLink({
  uri: '...special_url...',
});

const authLink = setContext(async (_, { headers }) => {
  const token = await AsyncStorage.getItem('@userToken');
  return {
    headers: {
      ...headers,
      authorization: token ? `Bearer ${token}` : '',
    }
  }
});

const client = new ApolloClient({
  link: authLink.concat(httpLink),
  cache: new InMemoryCache()
});

export default function App() {
  const init = () => {
    RNBootSplash.hide();
  }
  React.useEffect(() => {
    init();
  }, []);

  return (
    <ApolloProvider client={client}>
      <AppNavigator />
    </ApolloProvider>
  );
}
  1. See this error TypeError: null is not an object (evaluating 'RNBootSplash.hide')
  2. Try linking manually following https://github.com/zoontek/react-native-bootsplash#-manual-linking
  3. Same error shows

🤞Solution

Unsure how to navigate this. Any help would be appreciated, thanks.

[Suggestion] Implementing gifs for splash screen

💻 My environment

  • react-native-bootsplash version: 1.2.1
  • react-native version: 0.61.5
  • Platform: both
  • OS version: OS X 10.14
  • Device: Apple + iPhone 11
  • Simulator: yes

🕵️‍♂️ Reproducing the issue

Explain what you did, what you expected to happen, and what actually happens.
Provide some code or screenshots if needed.

This is more of a suggestion, so I am not sure if this the right way to address it, but I am trying to create a splash screen gif animation. I've gone through the documentation and its pretty clear that on iOS we can't really have a controller assigned to a xib or launch screen storyboard. What I was thinking, and do correct me if I am wrong, is there a way to maybe take the user to a different UIView to load the gif animation and that acts as the default splash screen.

The reason why I don't want to move this to the native side is that I am not sure about the time it'll take for the JS bundle to load and grabbing the first frame of the gif to act as a splash screen and only show the gif on the JS side might be really tricky from a usability standpoint.

🤞Solution

For iOS, here is an implementation article I found. https://www.amerhukic.com/animating-launch-screen-using-gif

For android, maybe we could use like a gif view drawable to handle that, something like this. https://github.com/koral--/android-gif-drawable

I have no clue about the implementation details of this, so I am just looking at some ideas around how we can tackle this issue.

P.S Thank you for building this lib, it has really helped out making RN apps on par with the native ones.

timeout on launch

Hey i'm having an issue that the app will not launch and was wondering if this was the issue...

2019-12-06 08:39:30.999 2051-2072/? W/ActivityTaskManager: Activity top resumed state loss timeout for ActivityRecord{7203840 u0 com.[MYAPP]/com.zoontek.rnbootsplash.RNBootSplashActivity t16}

any idea?

💻 My environment

  • react-native-bootsplash version: newest
  • react-native version: newest
  • Platform: android
  • OS version: newest
  • Simulator: yes / no
  • Android Studio version: newest
  • Android buildToolsVersion: newest

🕵️‍♂️ Reproducing the issue

startup

Can not upgrade to 1.1.1/1.1.3

When trying to upgrade via yarn it spits out the following error:

error An unexpected error occurred: "https://registry.yarnpkg.com/react-native-bootsplash/-/react-native-bootsplash-1.1.3.tgz: Request failed \"404 Not Found\"".

💻 My environment

  • react-native-bootsplash version: 1.1.0
  • react-native version: 0.61.5
  • Platform: both
  • OS version: 10.15.1
  • Device: irrelevant
  • Simulator: irrelevant
  • Android Studio version: 3.5.2
  • Android buildToolsVersion: 26.x
  • Xcode version: 11.3
  • yarn version: 1.19.1

🕵️‍♂️ Reproducing the issue

Explain what you did, what you expected to happen, and what actually happens.
Provide some code or screenshots if needed.

  • Running yarn upgrade does not complete successfully.

🤞Solution

Do you know what needs to be done to address this issue?
Ideally, provide a pull request with a fix.

  • Stuck with 1.1.0 at this time.

Complex launchscreens on Android

💻 My environment

  • react-native-bootsplash version: 1.0.3
  • react-native version: 0.61.5
  • Platform: android

🕵️‍♂️ Reproducing the issue

I want to use a complex launchscreen on Android but when I dot this the app crashes with following error: E AndroidRuntime: Caused by: android.content.res.Resources$NotFoundException: File res/drawable/bootsplash.xml from drawable resource ID #0x7f060055 in logcat.

When I use the launchscreen from the example it works

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
  <!-- the background color. it can be a system color or a custom one defined in colors.xml -->
  <item android:drawable="@android:color/white" />

  <item>
    <!-- the app logo, centered horizontally and vertically -->
    <bitmap
      android:src="@drawable/ic_launcher"
      android:gravity="center" />
  </item>
</layer-list>

But with my own launchscreen I get the error:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white">

    <ImageView
        android:id="@+id/AppLogo"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_gravity="center"
        android:layout_marginTop="-50dp"
        android:contentDescription="@string/AppName"
        android:src="@mipmap/ic_launcher_foreground"
        app:srcCompat="@mipmap/ic_launcher_foreground" />

    <TextView
        android:id="@+id/AppName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="50dp"
        android:fontFamily="@font/lato_black"
        android:text="@string/AppName"
        android:textColor="@color/navy"
        android:textSize="36sp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:layout_gravity="bottom"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="20dp"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/FostplusLogo"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:contentDescription="@string/fostplus_logo"
            android:scaleType="center"
            android:src="@drawable/fostplus"
            app:srcCompat="@drawable/fostplus" />

        <ImageView
            android:id="@+id/BebatLogo"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:contentDescription="@string/bebat_logo"
            android:paddingTop="10dp"
            android:scaleType="center"
            android:src="@drawable/bebat"
            app:srcCompat="@drawable/bebat" />

    </LinearLayout>

</FrameLayout>

Error: cannot find symbol RNBootSplash.show(R.drawable.bootsplash, MainActivity.this);

💻 My environment

  • react-native-bootsplash version: 1.0.3
  • react-native version: 0.61.5
  • Platform: android

🕵️‍♂️ Reproducing the issue

I install react-native-bootsplash using automatic linking of RN 0.61.5.

MainActivity.java

package com.xxx.xxx;

import android.os.Bundle;
import com.facebook.react.ReactActivity;
import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactRootView;
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
import com.zoontek.rnbootsplash.RNBootSplash;

public class MainActivity extends ReactActivity {

    /**
     * Returns the name of the main component registered from JavaScript. This is
     * used to schedule rendering of the component.
     */
    @Override
    protected String getMainComponentName() {
        return "AvailproMobile";
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        RNBootSplash.show(R.drawable.bootsplash, MainActivity.this);
    }

    @Override
    protected ReactActivityDelegate createReactActivityDelegate() {
        return new ReactActivityDelegate(this, getMainComponentName()) {
            @Override
            protected ReactRootView createRootView() {
                return new RNGestureHandlerEnabledRootView(MainActivity.this);
            }
        };
    }
}

The build failed with the following exception:

> Task :app:compileDebugJavaWithJavac FAILED
/Users/nicolas/Development/Git/availpro.mobile/android/app/src/main/java/com/dedge/CentralInventory/MainActivity.java:24: error: cannot find symbol
        RNBootSplash.show(R.drawable.bootsplash, MainActivity.this);
                                    ^
  symbol:   variable bootsplash
  location: class drawable
1 error

FAILURE: Build failed with an exception.

I tried to link the package with react-native link react-native-bootsplash, the command succeed but the exception doesn't disappear.

Any suggestion of the cause?

Thank you!

java.lang.NoSuchMethodException MainActivity.onCreate

💻 My environment

  • react-native-bootsplash version: "^1.0.3"
  • react-native version: "0.61.5"
  • Platform: android
  • OS version: 7.1 and 9
  • Device: Samsung Galaxy Tab S3 (gts3lwifi), Android 9 and ZTE K92 (primrose), Android 7.1
  • Simulator: no
  • Android Studio version: nil
  • Android buildToolsVersion: "28.0.3"
  • Xcode version: nil

🕵️‍♂️ Reproducing the issue

I am not getting the error in my devices, but play store is reporting this issue. Please review this error log to investigate the possible cause. Thanks.

java.lang.RuntimeException: 
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2697)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2758)
  at android.app.ActivityThread.-wrap12 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1509)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:163)
  at android.app.ActivityThread.main (ActivityThread.java:6228)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:886)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:776)
Caused by: androidx.fragment.app.Fragment$InstantiationException: 
  at androidx.fragment.app.Fragment.dump (Fragment.java)
  at androidx.fragment.app.Fragment.findFragmentByWho (Fragment.java)
  at androidx.fragment.app.Fragment.getLayoutInflater (Fragment.java)
  at androidx.fragment.app.Fragment.getLifecycle (Fragment.java)
  at androidx.fragment.app.Fragment.instantiate (Fragment.java)
  at androidx.fragment.app.Fragment.onActivityResult (Fragment.java)
  at androidx.fragment.app.Fragment.onAttach (Fragment.java)
  at androidx.fragment.app.Fragment.onAttach (Fragment.java)
  at androidx.fragment.app.Fragment.onAttachFragment (Fragment.java)
  at androidx.fragment.app.Fragment.onContextItemSelected (Fragment.java)
  at androidx.fragment.app.Fragment.onCreateAnimation (Fragment.java)
  at androidx.fragment.app.Fragment.onCreateOptionsMenu (Fragment.java)
  at androidx.fragment.app.Fragment.onCreateView (Fragment.java)
  at androidx.fragment.app.Fragment.onHiddenChanged (Fragment.java)
  at androidx.fragment.app.Fragment.onInflate (Fragment.java)
  at androidx.fragment.app.Fragment.onInflate (Fragment.java)
  at androidx.fragment.app.Fragment.onOptionsMenuClosed (Fragment.java)
  at androidx.fragment.app.Fragment.onRequestPermissionsResult (Fragment.java)
  at androidx.fragment.app.Fragment.onViewCreated (Fragment.java)
  at androidx.fragment.app.Fragment.performConfigurationChanged (Fragment.java)
  at androidx.fragment.app.Fragment.setAnimatingAway (Fragment.java)
  at androidx.fragment.app.Fragment.setAnimator (Fragment.java)
  at androidx.fragment.app.Fragment.setNextAnim (Fragment.java)
  at androidx.fragment.app.Fragment.setNextTransition (Fragment.java)
  at androidx.fragment.app.Fragment.setOnStartEnterTransitionListener (Fragment.java)
  at androidx.fragment.app.FragmentContainer.instantiate (FragmentContainer.java)
  at androidx.fragment.app.FragmentContainer.onFindViewById (FragmentContainer.java)
  at androidx.fragment.app.FragmentManagerImpl$6.instantiate (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentState.instantiate (FragmentState.java)
  at androidx.fragment.app.FragmentManagerImpl.addAddedFragments (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.addBackStackState (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.addFragment (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.addRetainedFragment (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.animateRemoveFragment (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.attachController (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.beginTransaction (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.completeExecute (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchConfigurationChanged (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchContextItemSelected (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchCreateOptionsMenu (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchMultiWindowModeChanged (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchOnFragmentActivityCreated (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchOnFragmentAttached (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchOnFragmentViewCreated (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchOptionsMenuClosed (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dump (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.enqueueAction (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.executeOps (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.executePostponedTransaction (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.findFragmentById (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.findFragmentByTag (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.getFragment (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.loadAnimation (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.makeFadeAnimation (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.makeOpenCloseAnimation (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.moveToState (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.moveToState (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.popBackStack (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.popBackStackImmediate (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.popBackStackState (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.postponePostponableTransactions (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.putFragment (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.restoreSaveState (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.setBackStackIndex (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.setMaxLifecycle (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.throwException (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentController.attachHost (FragmentController.java)
  at androidx.fragment.app.FragmentController.createController (FragmentController.java)
  at androidx.fragment.app.FragmentController.dispatchActivityCreated (FragmentController.java)
  at androidx.fragment.app.FragmentController.dispatchConfigurationChanged (FragmentController.java)
  at androidx.fragment.app.FragmentController.dispatchContextItemSelected (FragmentController.java)
  at androidx.fragment.app.FragmentController.dispatchCreateOptionsMenu (FragmentController.java)
  at androidx.fragment.app.FragmentController.dispatchMultiWindowModeChanged (FragmentController.java)
  at androidx.fragment.app.FragmentController.dispatchOptionsMenuClosed (FragmentController.java)
  at androidx.fragment.app.FragmentController.findFragmentByWho (FragmentController.java)
  at androidx.fragment.app.FragmentController.onCreateView (FragmentController.java)
  at androidx.fragment.app.FragmentController.restoreSaveState (FragmentController.java)
  at androidx.fragment.app.FragmentActivity.onCreate (FragmentActivity.java)
  at androidx.appcompat.app.AppCompatActivity.onCreate (AppCompatActivity.java)
  at com.facebook.react.ReactActivity.onCreate (ReactActivity.java)
  at com.tnfr.tnfr.MainActivity.onCreate (MainActivity.java)
  at android.app.Activity.performCreate (Activity.java:6742)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1122)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2650)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2758)
  at android.app.ActivityThread.-wrap12 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1509)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:163)
  at android.app.ActivityThread.main (ActivityThread.java:6228)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:886)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:776)
Caused by: java.lang.NoSuchMethodException: 
  at java.lang.Class.getConstructor0 (Class.java:2204)
  at java.lang.Class.getConstructor (Class.java:1683)
  at androidx.fragment.app.Fragment.dump (Fragment.java)
  at androidx.fragment.app.Fragment.findFragmentByWho (Fragment.java)
  at androidx.fragment.app.Fragment.getLayoutInflater (Fragment.java)
  at androidx.fragment.app.Fragment.getLifecycle (Fragment.java)
  at androidx.fragment.app.Fragment.instantiate (Fragment.java)
  at androidx.fragment.app.Fragment.onActivityResult (Fragment.java)
  at androidx.fragment.app.Fragment.onAttach (Fragment.java)
  at androidx.fragment.app.Fragment.onAttach (Fragment.java)
  at androidx.fragment.app.Fragment.onAttachFragment (Fragment.java)
  at androidx.fragment.app.Fragment.onContextItemSelected (Fragment.java)
  at androidx.fragment.app.Fragment.onCreateAnimation (Fragment.java)
  at androidx.fragment.app.Fragment.onCreateOptionsMenu (Fragment.java)
  at androidx.fragment.app.Fragment.onCreateView (Fragment.java)
  at androidx.fragment.app.Fragment.onHiddenChanged (Fragment.java)
  at androidx.fragment.app.Fragment.onInflate (Fragment.java)
  at androidx.fragment.app.Fragment.onInflate (Fragment.java)
  at androidx.fragment.app.Fragment.onOptionsMenuClosed (Fragment.java)
  at androidx.fragment.app.Fragment.onRequestPermissionsResult (Fragment.java)
  at androidx.fragment.app.Fragment.onViewCreated (Fragment.java)
  at androidx.fragment.app.Fragment.performConfigurationChanged (Fragment.java)
  at androidx.fragment.app.Fragment.setAnimatingAway (Fragment.java)
  at androidx.fragment.app.Fragment.setAnimator (Fragment.java)
  at androidx.fragment.app.Fragment.setNextAnim (Fragment.java)
  at androidx.fragment.app.Fragment.setNextTransition (Fragment.java)
  at androidx.fragment.app.Fragment.setOnStartEnterTransitionListener (Fragment.java)
  at androidx.fragment.app.FragmentContainer.instantiate (FragmentContainer.java)
  at androidx.fragment.app.FragmentContainer.onFindViewById (FragmentContainer.java)
  at androidx.fragment.app.FragmentManagerImpl$6.instantiate (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentState.instantiate (FragmentState.java)
  at androidx.fragment.app.FragmentManagerImpl.addAddedFragments (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.addBackStackState (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.addFragment (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.addRetainedFragment (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.animateRemoveFragment (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.attachController (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.beginTransaction (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.completeExecute (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchConfigurationChanged (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchContextItemSelected (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchCreateOptionsMenu (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchMultiWindowModeChanged (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchOnFragmentActivityCreated (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchOnFragmentAttached (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchOnFragmentViewCreated (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dispatchOptionsMenuClosed (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.dump (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.enqueueAction (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.executeOps (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.executePostponedTransaction (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.findFragmentById (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.findFragmentByTag (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.getFragment (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.loadAnimation (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.makeFadeAnimation (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.makeOpenCloseAnimation (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.moveToState (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.moveToState (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.popBackStack (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.popBackStackImmediate (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.popBackStackState (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.postponePostponableTransactions (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.putFragment (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.restoreSaveState (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.setBackStackIndex (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.setMaxLifecycle (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentManagerImpl.throwException (FragmentManagerImpl.java)
  at androidx.fragment.app.FragmentController.attachHost (FragmentController.java)
  at androidx.fragment.app.FragmentController.createController (FragmentController.java)
  at androidx.fragment.app.FragmentController.dispatchActivityCreated (FragmentController.java)
  at androidx.fragment.app.FragmentController.dispatchConfigurationChanged (FragmentController.java)
  at androidx.fragment.app.FragmentController.dispatchContextItemSelected (FragmentController.java)
  at androidx.fragment.app.FragmentController.dispatchCreateOptionsMenu (FragmentController.java)
  at androidx.fragment.app.FragmentController.dispatchMultiWindowModeChanged (FragmentController.java)
  at androidx.fragment.app.FragmentController.dispatchOptionsMenuClosed (FragmentController.java)
  at androidx.fragment.app.FragmentController.findFragmentByWho (FragmentController.java)
  at androidx.fragment.app.FragmentController.onCreateView (FragmentController.java)
  at androidx.fragment.app.FragmentController.restoreSaveState (FragmentController.java)
  at androidx.fragment.app.FragmentActivity.onCreate (FragmentActivity.java)
  at androidx.appcompat.app.AppCompatActivity.onCreate (AppCompatActivity.java)
  at com.facebook.react.ReactActivity.onCreate (ReactActivity.java)
  at com.tnfr.tnfr.MainActivity.onCreate (MainActivity.java)
  at android.app.Activity.performCreate (Activity.java:6742)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1122)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2650)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2758)
  at android.app.ActivityThread.-wrap12 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1509)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:163)
  at android.app.ActivityThread.main (ActivityThread.java:6228)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:886)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:776)

When the screen is full, the picture stretches and deforms, but there is no adaption

💻 My environment

  • react-native-bootsplash version:
  • react-native version:
  • Platform: ios / android / both
  • OS version: ?
  • Device: brand + model
  • Simulator: yes / no
  • Android Studio version: ?
  • Android buildToolsVersion: ?
  • Xcode version: ?

🕵️‍♂️ Reproducing the issue

When the screen is full, the picture stretches and deforms, but there is no adaption,is it can scale?

🤞Solution

Do you know what needs to be done to address this issue?
Ideally, provide a pull request with a fix.

react native 0.61.4 ?

💻 My environment

  • react-native-bootsplash version:
  • react-native version:
  • Platform: ios / android / both
  • OS version: ?
  • Device: brand + model
  • Simulator: yes / no
  • Android Studio version: ?
  • Android buildToolsVersion: ?
  • Xcode version: ?

🕵️‍♂️ Reproducing the issue

Explain what you did, what you expected to happen, and what actually happens.
Provide some code or screenshots if needed.

🤞Solution

Do you know what needs to be done to address this issue?
Ideally, provide a pull request with a fix.

LinearGradient support

Does this package support the ability to set a background with LinearGradient in both Android and iOS? If so, how?

`view.setBackgroundResource(drawableResId)` cause oom on android with large image

i have a 132KB png image as splash screen, and app crash on launch with the following error message:

   java.lang.OutOfMemoryError: Failed to allocate a 144072012 byte allocation with 2234122 free bytes and 92MB until OOM
        at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
        at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
        at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:609)
        at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444)
        at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:467)
        at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:497)
        at android.graphics.drawable.BitmapDrawable.updateStateFromTypedArray(BitmapDrawable.java:762)
        at android.graphics.drawable.BitmapDrawable.inflate(BitmapDrawable.java:724)
        at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1215)
        at android.graphics.drawable.LayerDrawable.inflateLayers(LayerDrawable.java:254)
        at android.graphics.drawable.LayerDrawable.inflate(LayerDrawable.java:164)
        at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1215)
        at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1124)
        at android.content.res.Resources.loadDrawableForCookie(Resources.java:2630)
        at android.content.res.Resources.loadDrawable(Resources.java:2540)
        at android.content.res.Resources.getDrawable(Resources.java:806)
        at android.content.Context.getDrawable(Context.java:458)
        at android.view.View.setBackgroundResource(View.java:17202)
        at com.zoontek.rnbootsplash.RNBootSplash$1.run(RNBootSplash.java:25)
        at android.app.Activity.runOnUiThread(Activity.java:5511)
        at com.zoontek.rnbootsplash.RNBootSplash.show(RNBootSplash.java:17)
        at com.kjkdoctor.MainActivity.onCreate(MainActivity.java:49)
        at android.app.Activity.performCreate(Activity.java:6237)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
        at android.app.ActivityThread.-wrap11(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5417)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

source code error line:

💻 My environment

System:
    OS: macOS Mojave 10.14.6
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
    Memory: 22.91 MB / 16.00 GB
    Shell: 5.3 - /bin/zsh
  Binaries:
    Node: 11.15.0 - /usr/local/bin/node
    Yarn: 1.19.1 - ~/.yarn/bin/yarn
    npm: 6.7.0 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
    Android SDK:
      API Levels: 21, 23, 26, 27, 28
      Build Tools: 23.0.1, 26.0.1, 28.0.3, 29.0.2
  IDEs:
    Android Studio: 3.5 AI-191.8026.42.35.6010548
    Xcode: 11.3/11C29 - /usr/bin/xcodebuild
  npmPackages:
    react: 16.9.0 => 16.9.0
    react-native: 0.61.5 => 0.61.5
  • react-native-bootsplash version: 1.0.3
  • OS version: android 6.0
  • Simulator: yes

🕵️‍♂️ Reproducing the issue

Explain what you did, what you expected to happen, and what actually happens.
Provide some code or screenshots if needed.

🤞Solution

temporary solution:
https://stackoverflow.com/questions/14096061/android-setbackgroundresource-cause-out-of-memory-excepiton

Does this support react-native-navigation's way ?

💻 My environment

  • react-native-bootsplash version: 0.1.1
  • react-native version: 0.60.4
  • Platform: both
  • OS version: Mojave
  • Device: iphone 8 simulator
  • Simulator: yes
  • Android Studio version: 3.4.x
  • Xcode version: 10.3
  • React-native-navigation: v3 Alpha 11

🕵️‍♂️ Issue is splash screen fluctuates once when JS screen gets mounted

I followed all the steps you have mentioned but i'm not be able to achieve the smooth splash experience. I'm using react-native-navigation is this creating the problem? Whats happening right now is whenever i do load my app native splash shows on the screen but fluctuates once when javascript screen mounted. Please guide me further.

I'm guessing this is something to do with react native navigation. If yes then how can i achieve same results. Looking forward for your response. Thanks!

Feature request: the scripts should accept args, so it can be run in a CLI

Hi!

I'm really liking this package, and I have a suggestion:

It would be nice, if the generate-bootsplash-assets script acccepted args after it, like:

npx generate-bootsplash-assets . brands/default icon.png 300

Or have an exported member, so it can be called in a script like:

import {generate_bootsplash_assets} from 'react-native-bootsplash'


generate_bootsplash_assets({
       projectPath: ".",
       assetsPath: "assets",
       etc...
      })

This way, it could be run in a none interactive environment like a CLI.

What is the license of this project?

Fantastic work! I'm currently using react-native-splash-screen but I'm considering switching to react-native-bootsplash based on this comparison.

One clear advantage of react-native-splash-screen is the MIT license, so I was wondering which license this project will have.

android.content.res.Resources$NotFoundException: Drawable org.package:drawable/bootsplash

💻 My environment

  • react-native-bootsplash version: 0.1.1
  • react-native version: 0.60.4
  • Platform: android
  • OS version: 10
  • Simulator: yes

🕵️‍♂️ Reproducing the issue

Trying to set up the module I obtain this error (found through logcat, the app won't even startup, it crash at the opening)
image
But I do have the bootsplash.xml placed in the correct folder... what could it be?

And commenting this line in MainActivity.java:
RNBootSplash.show(R.drawable.bootsplash, MainActivity.this);

The app starts up but there is a white screen as splash.

PS: on ios it's working great

Feature request: react-native-navigation support

💻 My environment

  • react-native-bootsplash version: 0.1.1
  • react-native version: 0.60.4
  • Platform: Both
  • OS version: IOS 12.3 / Android Pie
  • Device: Iphone 8 simulator
  • Simulator: yes
  • Android Studio version: 3.4.x
  • Xcode version: 10.3
  • React-Native-Navigation: V3 Alpha 11

🕵️‍♂️ Issue is splash screen fluctuates once when JS screen gets mounted..

I followed all your steps but its still happening. Please let me know what to do. I'm using react native navigation. I'm guessing due to react-native-navigation this is happening. Please let me know how to deal with it. Looking forward for your response. Thanks!

iOS application is shown first than bootsplash icon is shown

💻 My environment

  • react-native-bootsplash version:1.2.1
  • react-native version: 0.61.5
  • Platform: ios
  • OS version: MacOS Catalina 0.15.3 Beta (19D49f)
  • Device: Iphone 8 (emulator)
  • Simulator: yes
  • Xcode version: 11.3 (11C29)

🕵️‍♂️ Reproducing the issue

This issue only relates to IOS, android works perfectly.

Expected:

  • Bootsplash logo on custom background until hide() is called

Actual:

  • Application icon with gradient background on a custom background color is shown for a small period of time than bootsplash_logo icon is shown on custom background color as expected.

What I did:

  • I have integrated this awesome library following the readme
  • generated bootsplash_logo files using the generator
  • configured LaunchScreen according to the example and changed the custom background color

We have an application icon with a gradient and a transparent bootsplash logo icon on a transparent background.

example 2
exemple 1

React Native 0.61.2

Hi, is this still working in 0.61.2 ?

I can't hide programmatically the splash screen, it hides automatically as normal behavior

Splash screen from @drawable/launch_screen

💻 My environment

  • react-native-bootsplash version: 0.1.1
  • react-native version: 0.60.5

In the example of the boot screen, you've used the icon from @mipmap/ic_launcher. But often icon and splash are different. What is the proper way to setup splash screen with images from @drawable/launch_screen?
Is that correct?

    <item android:gravity="center">
        <bitmap android:src="@drawable/launch_screen" />
    </item>

The images from @drawable/launch_screen are in the folders drawable-hdpi, drawable-mdpi, drawable-mdpi etc.
image

This works for the first app launch, but when I click "Reload" in the emulator, a white screen appears without an image.

No known class method for selector 'show:'

💻 My environment

  • react-native-bootsplash version: 1.2.1
  • react-native version: 0.61.2
  • Platform: ios
  • OS version: 13
  • Device: brand + model: NA
  • Simulator: yes
  • Android Studio version: NA
  • Android buildToolsVersion: NA
  • Xcode version: 11.3

🕵️‍♂️ Reproducing the issue

Build fails. Followed installation instructions and got the error No known class method for selector 'show:' on the line where I call RNBootSplash in Xcode, any clues on how to resolve?

Security exception: Permission Denial

ERROR

Starting: Intent { cmp=[appName]/.MainActivity }
Security exception: Permission Denial: starting Intent { flg=0x10000000 cmp=[appName]/.MainActivity } from null (pid=27721, uid=2000) not exported from uid 10085

java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=[appName]/.MainActivity } from null (pid=27721, uid=2000) not exported from uid 10085
at com.android.server.am.ActivityStackSupervisor.checkStartAnyActivityPermission(ActivityStackSupervisor.java:1632)
at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:438)
at com.android.server.am.ActivityStarter.startActivityLocked(ActivityStarter.java:278)
at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:817)
at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4532)
at com.android.server.am.ActivityManagerShellCommand.runStartActivity(ActivityManagerShellCommand.java:417)
at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:141)
at android.os.ShellCommand.exec(ShellCommand.java:96)
at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:15014)
at android.os.Binder.shellCommand(Binder.java:594)
at android.os.Binder.onTransact(Binder.java:492)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:4243)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2919)
at android.os.Binder.execTransact(Binder.java:697)

💻 My environment

  • react-native-bootsplash version: "^0.1.1"
  • react-native version: "0.60.4",
  • Platform: android
  • Device: Nexus 6
  • Simulator: yes
  • Android Studio version: 3.4.2
  • Android buildToolsVersion: 28.0.3

🕵️‍♂️ Reproducing the issue

Install react-native-bootsplash and run react-native run-android

how to edit LaunchScreen.xib to set a full screen image in iOS?

💻 My environment

  • react-native-bootsplash version: 0.1.1
    OS: macOS 10.14.6
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
    Memory: 1.25 GB / 16.00 GB
    Shell: 5.3 - /bin/zsh
  Binaries:
    Node: 12.3.1 - /usr/local/bin/node
    Yarn: 1.16.0 - /usr/local/bin/yarn
    npm: 6.10.3 - /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: 21, 23, 26, 27, 28
      Build Tools: 23.0.1, 26.0.1, 28.0.3
  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

🕵️‍♂️ Reproducing the issue

i am an Android developer,not familiar with iOS, could you please give a brief guide on how to set the LauchScreen.xib to display a full screen image?

Custom animation

Hello, how can I change the animation after hiding SplashScreen (not sliding from the top to the bottom)?

By default I wanna get animations like in react-native-splash-screen.

Why can't my launch icon slide down

💻 My environment

  • react-native-bootsplash version:
  • react-native version:
  • Platform: ios / android / both
  • OS version: ?
  • Device: brand + model
  • Simulator: yes / no
  • Android Studio version: ?
  • Android buildToolsVersion: ?
  • Xcode version: ?

🕵️‍♂️ Reproducing the issue

Explain what you did, what you expected to happen, and what actually happens.
Provide some code or screenshots if needed.

🤞Solution

Do you know what needs to be done to address this issue?
Ideally, provide a pull request with a fix.
Is this startup map to be edited by yourself or fixed? Only use the app icon as the startup map

getApplicationContext().getPackageName() can return an inappropriate string

💻 My environment

  • react-native-bootsplash version: 0.1.1
  • Platform: android

🕵️‍♂️ Reproducing the issue

If your code isn't located at the place expected by this assumption

startActivity(new Intent(this, Class.forName(getApplicationContext()
.getPackageName() + ".MainActivity")));
(getApplicationContext().getPackageName())

(My case: white labeled app with dynamic application id that's doesn't match the classes path)

🤞Solution

Your solution after a private discussion:

https://developer.android.com/guide/topics/manifest/meta-data-element

    <activity
      android:name="com.zoontek.rnbootsplash.RNBootSplashActivity"
      android:theme="@style/BootTheme"> <!-- apply the theme you created at step 3. -->
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>

<meta-data android:name=“started” android:value=“com.my.ns” />
    </activity>

Workaround

Use your own class for the activity. Eg for me with android-pre x

package com.my.ns;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;

public class RNBootSplashActivityPackageNameWorkaround extends AppCompatActivity {

  @Override
  protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    try {
      startActivity(new Intent(this, MainActivity.class));
      finish();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}
      <activity
        android:name=".RNBootSplashActivityPackageNameWorkaround"
        android:theme="@style/SplashTheme"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>

react-native run-android two applications appear?

💻 My environment

  • react-native-bootsplash version:1.0.0
  • react-native version:0.60.5
  • Platform: android
  • OS version: 7.1

🕵️‍♂️ Reproducing the issue

react-native run-android two applications appear?
image

"react": "16.8.6",
"react-native": "0.60.5",
"react-native-bootsplash": "^1.0.0",

AndroidManifest.xml

<application
  android:name=".MainApplication"
  android:label="@string/app_name"
  android:icon="@mipmap/ic_launcher"
  android:roundIcon="@mipmap/ic_launcher_round"
  android:allowBackup="false"
  android:theme="@style/AppTheme">
  <activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    android:windowSoftInputMode="adjustResize"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
  </activity>
  <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
  <!-- add the following lines -->
  <activity
    android:name="com.zoontek.rnbootsplash.RNBootSplashActivity"
    android:theme="@style/BootTheme"> <!-- apply the theme you created at step 3. -->
    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
  </activity>
</application>

MainActivity.java

public class MainActivity extends ReactActivity {

    /**
     * Returns the name of the main component registered from JavaScript.
     * This is used to schedule rendering of the component.
     */
    @Override
    protected String getMainComponentName() {
        return "wywdrgapp";
    }

    @Override
    protected ReactActivityDelegate createReactActivityDelegate() {
        return new ReactActivityDelegate(this, getMainComponentName()) {
            @Override
            protected ReactRootView createRootView() {
                return new RNGestureHandlerEnabledRootView(MainActivity.this);
            }
        };
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        RNBootSplash.show(R.drawable.bootsplash, MainActivity.this); // <- display the "bootsplash" xml view over our MainActivity
    }
}
`

how to solve this. thanks 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.