airbnb / lottie-android

Render After Effects animations natively on Android and iOS, Web, and React Native
http://airbnb.io/lottie/
Apache License 2.0
35.02k stars 5.41k forks source link

Fatal Exception: java.lang.IllegalStateException: Underflow in restore - more restores than saves #2525

Closed devsigofficial closed 1 month ago

devsigofficial commented 3 months ago

Fatal Exception: java.lang.IllegalStateException: Underflow in restore - more restores than saves at android.graphics.Canvas.restore(Canvas.java:664) at com.airbnb.lottie.model.layer.CompositionLayer.drawLayer(CompositionLayer.java:135) at com.airbnb.lottie.model.layer.BaseLayer.draw(BaseLayer.java:266) at com.airbnb.lottie.LottieDrawable.renderAndDrawAsBitmap(LottieDrawable.java:1746) at com.airbnb.lottie.LottieDrawable.draw(LottieDrawable.java:710) at android.widget.ImageView.onDraw(ImageView.java:1445) at android.view.View.draw(View.java:22923) at android.view.View.updateDisplayListIfDirty(View.java:21761) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4603) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4576) at android.view.View.updateDisplayListIfDirty(View.java:21712) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4603) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4576) at android.view.View.updateDisplayListIfDirty(View.java:21712) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4603) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4576) at android.view.View.updateDisplayListIfDirty(View.java:21712) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4603) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4576) at android.view.View.updateDisplayListIfDirty(View.java:21712) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4603) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4576) at android.view.View.updateDisplayListIfDirty(View.java:21712) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4603) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4576) at android.view.View.updateDisplayListIfDirty(View.java:21712) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4603) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4576) at android.view.View.updateDisplayListIfDirty(View.java:21712) at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:561) at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:567) at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:669) at android.view.ViewRootImpl.draw(ViewRootImpl.java:4815) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4539) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3667) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2383) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9304) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1186) at android.view.Choreographer.doCallbacks(Choreographer.java:986) at android.view.Choreographer.doFrame(Choreographer.java:912) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1171) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:233) at android.os.Looper.loop(Looper.java:334) at android.app.ActivityThread.main(ActivityThread.java:8396) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:582) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1068)

gpeal commented 3 months ago

Can you attach the animation that causes this?