gorhom / react-native-bottom-sheet

A performant interactive bottom sheet with fully configurable options 🚀
https://ui.gorhom.dev/components/bottom-sheet
MIT License
6.35k stars 722 forks source link

[v4] app crash in release mode ( IOS & ANDROID ) #1824

Open alainib opened 2 months ago

alainib commented 2 months ago

Bug

since i added this package and reanimated my app crash on opening on both IOS & Android, i'm not able to fix this after lot's of test

 Failed to deliver inset state change to w=Window{2f8b223 u0 com.cool.preprod/com.cool.MainActivity EXITING}
            android.os.DeadObjectException
                at android.os.BinderProxy.transactNative(Native Method)
                at android.os.BinderProxy.transact(BinderProxy.java:584)
                at android.view.IWindow$Stub$Proxy.insetsControlChanged(IWindow.java:473)
                at com.android.server.wm.WindowState.notifyInsetsControlChanged(WindowState.java:3995)
                at com.android.server.wm.InsetsStateController.lambda$notifyPendingInsetsControlChanged$4(InsetsStateController.java:351)
                at com.android.server.wm.InsetsStateController.$r8$lambda$An2IoiA3BeA5IWc6QwBOjKArM80(Unknown Source:0)
                at com.android.server.wm.InsetsStateController$$ExternalSyntheticLambda3.run(Unknown Source:2)
                at com.android.server.wm.WindowAnimator.executeAfterPrepareSurfacesRunnables(WindowAnimator.java:345)
                at com.android.server.wm.RootWindowContainer.performSurfacePlacementNoTrace(RootWindowContainer.java:832)
                at com.android.server.wm.RootWindowContainer.performSurfacePlacement(RootWindowContainer.java:777)
                at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:177)
                at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:126)
                at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:115)
                at com.android.server.wm.WindowSurfacePlacer$Traverser.run(WindowSurfacePlacer.java:57)
                at android.os.Handler.handleCallback(Handler.java:942)
                at android.os.Handler.dispatchMessage(Handler.java:99)
                at android.os.Looper.loopOnce(Looper.java:201)
                at android.os.Looper.loop(Looper.java:288)
                at android.os.HandlerThread.run(HandlerThread.java:67)
                at com.android.server.ServiceThread.run(ServiceThread.java:44)
2024-05-03 16:27:49.270   582-603   WindowManager           system_server                        W  Exception thrown during dispatchAppVisibility Window{2f8b223 u0 com.cool.preprod/com.cool.MainActivity EXITING}
            android.os.DeadObjectException
                at android.os.BinderProxy.transactNative(Native Method)
                at android.os.BinderProxy.transact(BinderProxy.java:584)
                at android.view.IWindow$Stub$Proxy.dispatchAppVisibility(IWindow.java:536)
                at com.android.server.wm.WindowState.sendAppVisibilityToClients(WindowState.java:3469)
                at com.android.server.wm.WindowContainer.sendAppVisibilityToClients(WindowContainer.java:1225)
                at com.android.server.wm.WindowToken.setClientVisible(WindowToken.java:392)
                at com.android.server.wm.ActivityRecord.setClientVisible(ActivityRecord.java:6714)
                at com.android.server.wm.ActivityRecord.onAnimationFinished(ActivityRecord.java:7526)
                at com.android.server.wm.ActivityRecord.postApplyAnimation(ActivityRecord.java:5405)
                at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5364)
                at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5368)
                at com.android.server.wm.AppTransitionController.handleClosingApps(AppTransitionController.java:1144)
                at com.android.server.wm.AppTransitionController.handleAppTransitionReady(AppTransitionController.java:292)
                at com.android.server.wm.RootWindowContainer.checkAppTransitionReady(RootWindowContainer.java:970)
                at com.android.server.wm.RootWindowContainer.performSurfacePlacementNoTrace(RootWindowContainer.java:834)
                at com.android.server.wm.RootWindowContainer.performSurfacePlacement(RootWindowContainer.java:777)
                at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:177)
                at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:126)
                at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:115)
                at com.android.server.wm.WindowSurfacePlacer$Traverser.run(WindowSurfacePlacer.java:57)
                at android.os.Handler.handleCallback(Handler.java:942)
                at android.os.Handler.dispatchMessage(Handler.java:99)
                at android.os.Looper.loopOnce(Looper.java:201)
                at android.os.Looper.loop(Looper.java:288)
                at android.os.HandlerThread.run(HandlerThread.java:67)
                at com.android.server.ServiceThread.run(ServiceThread.java:44)
2024-05-03 16:27:49.714   582-602   ActivityTaskManager     system_server                        W  Activity top resumed state loss timeout for ActivityRecord{5cd4719 u0 com.cool.preprod/com.cool.MainActivity} t-1 f}}

Environment info

Library Version
@gorhom/bottom-sheet 4.6.1
react-native 0.73.5
react-native-reanimated 3.10.0
react-native-gesture-handler 2.16.1

Steps To Reproduce

app work on debug mode but crash on IOS & Android

i triple checked reanimated setup, i have done the step in babel.config.js and pod install

Reproducible sample code

i have this error even with basic example from here

https://ui.gorhom.dev/components/bottom-sheet/usage

JDMathew commented 1 month ago

I'm not sure this library is compatible with reanimated version 3 according to the readme it only supports v1 & v2.

alainib commented 1 month ago

@JDMathew we also tested

@gorhom/bottom-sheet | 5.0.0-alpha.9 react-native | 0.73.5 react-native-reanimated | 3.10.0 react-native-gesture-handler | 2.16.1

reanimated V2 works only with reactnative 0.71 and lower https://docs.swmansion.com/react-native-reanimated/docs/guides/compatibility/

MuhammadMuzammilQadri commented 1 month ago

Our app is getting crashed too. We are getting the below error: Error: [Reanimated] Native part of Reanimated doesn't seem to be initialized

When we remove the code for @gorhom/bottom-sheet, app starts running fine.

Environment Info: @gorhom/bottom-sheet | 5.0.0-alpha.9 and 4.6.1 react-native | 0.74.0 react-native-reanimated | 3.11.0 react-native-gesture-handler | 2.16.2

alainib commented 1 month ago

did you found a way to fix it ? i switched to Modalize

alainib commented 2 weeks ago

@MuhammadMuzammilQadri @gorhom do you have an idea how to fix this please ?

@gorhom/bottom-sheet 4.6.3 react-native | 0.74.2 react-native-reanimated | 3.12.0 react-native-gesture-handler | 2.16.2

CppException: Cannot read property '__workletHash' of undefined

TypeError: Cannot read property '__workletHash' of undefined
    at isWorkletFunction (JavaScript:1:49)
    at runOnJS (JavaScript:1:308)
    at setupConsole (JavaScript:1:147)
    at anonymous (JavaScript:1:163)
    at apply (native)
    at anonymous (JavaScript:1:65)

i already have import "react-native-gesture-handler"; in my entry point