zoontek / react-native-bootsplash Goto Github PK
View Code? Open in Web Editor NEW🚀 Show a splash screen during app startup. Hide it when you are ready.
License: MIT License
🚀 Show a splash screen during app startup. Hide it when you are ready.
License: MIT License
like splashscreen using lanunchimages?
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?
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.
Boot splash screen disappear and show my app main screen.
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.
Real question that everybody is going to ask.
Exposing your motivation on why you created this module will probably answer this question :)
I’m wondering what’s the purpose of RNBootSplashActivity? I tried without it, and the splash screen still appeared immediately.
No matter how I change xcode, the react chart is always displayed at the beginning and then launchScreen.xib is displayed. Please tell me why?
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:
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.
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)
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.
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?
"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"
},
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.
I think its because of the bootsplash, I am getting that error. So please give me a solution.
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"
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
👋 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?
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.
Explain what you did, what you expected to happen, and what actually happens.
Provide some code or screenshots if needed.
Do you know what needs to be done to address this issue?
Ideally, provide a pull request with a fix.
First of all, thanks for your library.
I would like to change the status bar color in the splash screen so that it matches the background color of the splash screen in Android.
Where do I specify this?
Hi,
Is there a hard dependency on RN 0.60? Or you have just been testing this on 0.60?
Cheers,
Ken
Hello there!
As quoted in Apple Store news:
As announced at WWDC19, starting April 2020, apps submitted to the App Store must use an Xcode storyboard to provide the app’s launch screen and must have an interface that supports any display size.
This lib is currently not supporting Storyboard am I right?
I npm installed the package and expected it to autolink. But it did not. Got the error on build:
'RNSplashScreen.h' file not found
Do you know what needs to be done to address this issue?
Ideally, provide a pull request with a fix.
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.
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
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.
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
Splash screen on some Android devices jumps slightly when loaded
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.
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!
<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>
_Landing: {
screen: Landing,
path: 'agent/:personID'
},
componentDidMount() {
alert(this.props.navigation.getParam('personID'));
}
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 😐
^1.0.3
0.61.4
v10.15.1
11.2.1
yarn add react-native-bootsplash
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>
);
}
TypeError: null is not an object (evaluating 'RNBootSplash.hide')
Unsure how to navigate this. Any help would be appreciated, thanks.
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.
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.
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?
startup
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\"".
Explain what you did, what you expected to happen, and what actually happens.
Provide some code or screenshots if needed.
yarn upgrade
does not complete successfully.Do you know what needs to be done to address this issue?
Ideally, provide a pull request with a fix.
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>
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!
Steps to reproduce:
On latest iOS (iPhone models) it is hard to reproduce because the app is opened too fast I think.
this is why I am still using https://github.com/crazycodeboy/react-native-splash-screen#api , it doesn't have such an 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,is it can scale?
Do you know what needs to be done to address this issue?
Ideally, provide a pull request with a fix.
Explain what you did, what you expected to happen, and what actually happens.
Provide some code or screenshots if needed.
Do you know what needs to be done to address this issue?
Ideally, provide a pull request with a fix.
Does this package support the ability to set a background with LinearGradient in both Android and iOS? If so, how?
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:
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
1.0.3
android 6.0
Explain what you did, what you expected to happen, and what actually happens.
Provide some code or screenshots if needed.
temporary solution:
https://stackoverflow.com/questions/14096061/android-setbackgroundresource-cause-out-of-memory-excepiton
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!
Do you support GIF format or dynamic effect?
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.
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.
Trying to set up the module I obtain this error (found through logcat, the app won't even startup, it crash at the opening)
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
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!
This issue only relates to IOS, android works perfectly.
Expected:
hide()
is calledActual:
What I did:
We have an application icon with a gradient and a transparent bootsplash logo icon on a transparent background.
Hi, is this still working in 0.61.2 ?
I can't hide programmatically the splash screen, it hides automatically as normal behavior
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.
This works for the first app launch, but when I click "Reload" in the emulator, a white screen appears without an image.
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?
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)
Install react-native-bootsplash and run react-native run-android
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
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?
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.
Explain what you did, what you expected to happen, and what actually happens.
Provide some code or screenshots if needed.
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
If your code isn't located at the place expected by this assumption
getApplicationContext().getPackageName()
)
(My case: white labeled app with dynamic application id that's doesn't match the classes path)
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>
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?
"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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.