Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android: StackOverflow when lowerLimit is greater than upperLimit (and, on some devices, when the slider first loads) #571

Closed
personalizedrefrigerator opened this issue Jan 30, 2024 · 3 comments · Fixed by #638
Assignees
Labels
bug report Something isn't working platform: Android Issue related to Android platform

Comments

@personalizedrefrigerator
Copy link

personalizedrefrigerator commented Jan 30, 2024

Environment

  • react-native info output:
info Fetching system and libraries information...
System:
  OS: Linux 6.5 Ubuntu 23.10 23.10 (Mantic Minotaur)
  CPU: (16) x64 12th Gen Intel(R) Core(TM) i7-1260P
  Memory: 2.64 GB / 15.34 GB
  Shell:
    version: "5.9"
    path: /usr/bin/zsh
Binaries:
  Node:
    version: 18.13.0
    path: /usr/bin/node
  Yarn: Not Found
  npm: Not Found
  Watchman: Not Found
SDKs:
  Android SDK: Not Found
IDEs:
  Android Studio: Not Found
Languages:
  Java:
    version: 11.0.21
    path: /usr/bin/javac
  Ruby:
    version: 3.1.2
    path: /usr/bin/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.72.6
    wanted: 0.72.6
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: Not found
  • are you using the new architecture? No

  • which version of react & react-native are you using?

    • React Native 0.72.6
    • React 18.2.0

Description

When lowerLimit is greater than upperLimit, react-native-slider can crash with a StackOverflowException.

Important

This is a reproducable version of this downstream bug report.

The downstream bug report happens while a slider is loading, even though lowerLimit and upperLimit are not set explicitly. Rather, it happens because React Native sets props one-by-one, which can lead to a state where lowerLimit > upperLimit (and realLowerLimit < realUpperLimit, so setProgress works).

I have been unable to reproduce this user's issue locally, however, they have posted logs which show the order in which props are updated (and recursion depth). This patch generates the logs.

Logcat output

Note: Top of stack trace lost due to

Exception in native call
                 com.facebook.react.bridge.JSApplicationIllegalArgumentException: Error while updating property 'step' of a view managed by: RNCSlider
                 	at com.facebook.react.uimanager.ViewManagersPropertyCache$PropSetter.updateViewProp(ViewManagersPropertyCache.java:101)
                 	at com.facebook.react.uimanager.ViewManagerPropertyUpdater$FallbackViewManagerSetter.setProperty(ViewManagerPropertyUpdater.java:136)
                 	at com.facebook.react.uimanager.ViewManagerPropertyUpdater.updateProps(ViewManagerPropertyUpdater.java:56)
                 	at com.facebook.react.uimanager.ViewManager.updateProperties(ViewManager.java:86)
                 	at com.facebook.react.uimanager.ViewManager.createViewInstance(ViewManager.java:188)
                 	at com.facebook.react.uimanager.ViewManager.createView(ViewManager.java:115)
                 	at com.facebook.react.uimanager.NativeViewHierarchyManager.createView(NativeViewHierarchyManager.java:281)
                 	at com.facebook.react.uimanager.UIViewOperationQueue$CreateViewOperation.execute(UIViewOperationQueue.java:194)
                 	at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.dispatchPendingNonBatchedOperations(UIViewOperationQueue.java:1110)
                 	at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1081)
                 	at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
                 	at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)
                 	at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)
                 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1319)
                 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1329)
                 	at android.view.Choreographer.doCallbacks(Choreographer.java:930)
                 	at android.view.Choreographer.doFrame(Choreographer.java:854)
                 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1303)
                 	at android.os.Handler.handleCallback(Handler.java:942)
                 	at android.os.Handler.dispatchMessage(Handler.java:99)
                 	at android.os.Looper.loopOnce(Looper.java:226)
                 	at android.os.Looper.loop(Looper.java:313)
                 	at android.app.ActivityThread.main(ActivityThread.java:8810)
                 	at java.lang.reflect.Method.invoke(Native Method)
                 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:604)
                 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
                 Caused by: java.lang.reflect.InvocationTargetException
                 	at java.lang.reflect.Method.invoke(Native Method)
                 	at com.facebook.react.uimanager.ViewManagersPropertyCache$PropSetter.updateViewProp(ViewManagersPropertyCache.java:93)
                 	at com.facebook.react.uimanager.ViewManagerPropertyUpdater$FallbackViewManagerSetter.setProperty(ViewManagerPropertyUpdater.java:136) 
                 	at com.facebook.react.uimanager.ViewManagerPropertyUpdater.updateProps(ViewManagerPropertyUpdater.java:56) 
                 	at com.facebook.react.uimanager.ViewManager.updateProperties(ViewManager.java:86) 
                 	at com.facebook.react.uimanager.ViewManager.createViewInstance(ViewManager.java:188) 
                 	at com.facebook.react.uimanager.ViewManager.createView(ViewManager.java:115) 
                 	at com.facebook.react.uimanager.NativeViewHierarchyManager.createView(NativeViewHierarchyManager.java:281) 
                 	at com.facebook.react.uimanager.UIViewOperationQueue$CreateViewOperation.execute(UIViewOperationQueue.java:194) 
                 	at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.dispatchPendingNonBatchedOperations(UIViewOperationQueue.java:1110) 
                 	at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1081) 
                 	at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29) 
                 	at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175) 
                 	at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85) 
                 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1319) 
                 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1329) 
                 	at android.view.Choreographer.doCallbacks(Choreographer.java:930) 
                 	at android.view.Choreographer.doFrame(Choreographer.java:854) 
                 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1303) 
                 	at android.os.Handler.handleCallback(Handler.java:942) 
                 	at android.os.Handler.dispatchMessage(Handler.java:99) 
                 	at android.os.Looper.loopOnce(Looper.java:226) 
                 	at android.os.Looper.loop(Looper.java:313) 
                 	at android.app.ActivityThread.main(ActivityThread.java:8810) 
                 	at java.lang.reflect.Method.invoke(Native Method) 
                 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:604) 
                 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067) 
                 Caused by: java.lang.StackOverflowError: stack size 8188KB
                 	at android.view.View.invalidateInternal(View.java:20482)
                 	at android.view.View.invalidate(View.java:20442)
                 	at android.widget.ProgressBar.invalidateDrawable(ProgressBar.java:2311)
                 	at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:477)
                 	at android.graphics.drawable.LayerDrawable.invalidateDrawable(LayerDrawable.java:1052)
                 	at android.graphics.drawable.DrawableWrapper.invalidateDrawable(DrawableWrapper.java:218)
                 	at android.graphics.drawable.DrawableContainer.invalidateDrawable(DrawableContainer.java:400)
                 	at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:477)
                 	at android.graphics.drawable.GradientDrawable.onLevelChange(GradientDrawable.java:1271)
                 	at android.graphics.drawable.Drawable.setLevel(Drawable.java:892)
                 	at android.graphics.drawable.DrawableContainer.onLevelChange(DrawableContainer.java:346)
                 	at android.graphics.drawable.Drawable.setLevel(Drawable.java:892)
                 	at android.graphics.drawable.DrawableWrapper.onLevelChange(DrawableWrapper.java:375)
                 	at android.graphics.drawable.ScaleDrawable.onLevelChange(ScaleDrawable.java:217)
                 	at android.graphics.drawable.Drawable.setLevel(Drawable.java:892)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1737)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
15:07:11.330  E  	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
15:07:11.330  E  	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
15:07:11.330  E  	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
15:07:11.330  E  	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
15:07:11.330  E  	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
15:07:11.330  E  	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
15:07:11.330  E  	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
15:07:11.330  E  	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
15:07:11.330  E  	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
15:07:11.330  E  	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
15:07:11.330  E  	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:35)
                 	at android.widget.SeekBar.onProgressRefresh(SeekBar.java:100)
                 	at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:1785)
                 	at android.widget.ProgressBar.refreshProgress(ProgressBar.java:1902)
                 	at android.widget.ProgressBar.setProgressInternal(ProgressBar.java:1978)
                 	at android.widget.AbsSeekBar.setProgressInternal(AbsSeekBar.java:1635)
                 	at android.widget.ProgressBar.setProgress(ProgressBar.java:1934)
                 	at com.reactnativecommunity.slider.ReactSliderManager$1.onProgressChanged(ReactSliderManager.java:38)

...more...

Reproducible Demo

The following diff, applied to this repository, can be used to reproduce the issue (tested on Android 7 and 13):

diff --git a/example/src/Examples.tsx b/example/src/Examples.tsx
index dcead19..a0e5a69 100644
--- a/example/src/Examples.tsx
+++ b/example/src/Examples.tsx
@@ -1,5 +1,5 @@
 import React, {useState} from 'react';
-import {Text, View, StyleSheet} from 'react-native';
+import {Text, View, StyleSheet, Button} from 'react-native';
 import Slider, {SliderProps} from '@react-native-community/slider';
 
 export interface Props {
@@ -342,6 +342,18 @@ export const examples: Props[] = [
       return <SliderExample />;
     },
   },
+  {
+    title: 'Crash!',
+    render() {
+      return (
+        <SliderExample 
+          minimumValue={1}
+          maximumValue={10}
+          lowerLimit={4}
+          upperLimit={3} />
+      );
+    },
+  },
   {
     title: 'Initial value: 0.5',
     render() {
diff --git a/package-lock.json b/package-lock.json
index 89af84d..f1882a1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,5 +1,5 @@
 {
-    "name": "react-native-slider",
+    "name": "react-native-slider--fork",
     "lockfileVersion": 2,
     "requires": true,
     "packages": {
@personalizedrefrigerator personalizedrefrigerator added the bug report Something isn't working label Jan 30, 2024
@personalizedrefrigerator
Copy link
Author

personalizedrefrigerator commented Jan 30, 2024

One possible fix can be found here, however, it expands on already duplicated code and should thus be refactored before a pull request can be opened.

@personalizedrefrigerator personalizedrefrigerator changed the title Android: StackOverflow when lowerLimit is greater than upperLimit (on some devices, on component load) Android: StackOverflow when lowerLimit is greater than upperLimit (and, on some devices, when the slider first loads) Jan 31, 2024
@BartoszKlonowski
Copy link
Member

Well, yes, definitely the lower limit should always be smaller or equal to upper limit.
The simple solution would be to add the check in the code for such condition, or avoid crash, but throw an error.

@BartoszKlonowski BartoszKlonowski added the platform: Android Issue related to Android platform label Feb 23, 2024
@personalizedrefrigerator
Copy link
Author

Well, yes, definitely the lower limit should always be smaller or equal to upper limit.
The simple solution would be to add the check in the code for such condition, or avoid crash, but throw an error.

On some devices, this can happen while React Native is setting props, even if lowerLimit will be set to a value less than upperLimit after setting props has completed. As such, a warning might make more sense than throwing an error.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug report Something isn't working platform: Android Issue related to Android platform
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants