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

Animation inside recyclerView issues #45

Open
SiarheiSm opened this issue Dec 26, 2024 · 2 comments
Open

Animation inside recyclerView issues #45

SiarheiSm opened this issue Dec 26, 2024 · 2 comments

Comments

@SiarheiSm
Copy link

Hello, I attempted to use animations inside a RecyclerView to animate item changes. The behavior is similar to when the app displays animations for each item. However, I encountered some issues:

  • App crashes: The app occasionally crashes, especially during fast scrolling. This is the simplest way to reproduce the issue.
    The issue was tested on real Samsung devices and emulators running API levels 33–35. I haven’t yet tested it on lower versions.
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x100010100010108 in tid 20684 (t.myapplication), pid 20684 (t.myapplication)
Cmdline: com.tst.myapplication
pid: 20684, tid: 20684, name: t.myapplication  >>> com.tst.myapplication <<<
#00 pc 00000000000e6ad0  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)

Video: https://drive.google.com/file/d/1JhoyyVu9TWxHsogtZ5t6LeEkq7bJiKEp/view?usp=share_link

OR on app startup

Cmdline: com.tst.myapplication
pid: 21031, tid: 21062, name: DefaultDispatch  >>> com.tst.myapplication <<<
#00 pc 00000000001ce304  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#01 pc 00000000001cb3d0  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#02 pc 00000000001cb428  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#03 pc 00000000001cb518  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#04 pc 00000000001cb408  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#05 pc 00000000001cb518  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#06 pc 00000000001cd1d0  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#07 pc 0000000000095ce8  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#08 pc 00000000000abd3c  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#09 pc 00000000000ab508  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#10 pc 00000000000ab4ac  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#11 pc 00000000000a7e78  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#12 pc 00000000000aa474  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#13 pc 000000000008063c  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#14 pc 000000000007ce68  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#15 pc 000000000007e950  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000)
#16 pc 0000000000084ed0  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x2c8000) (uniffi_dotlottie_player_fn_method_dotlottieplayer_load_dotlottie_data+52)
#17 pc 000000000001404c  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x4000)
#18 pc 0000000000010a08  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x4000)
#19 pc 00000000000063c8  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x4000)
#20 pc 000000000000827c  /data/app/~~PRm59_5wdhcwPQ9fWFIWcQ==/com.tst.myapplication-nUQqF-y6sprm1t0jrbfCDg==/base.apk (offset 0x4000) (Java_com_sun_jna_Native_invokeInt+32)

Please check sample app: https://drive.google.com/file/d/1LseHv3mO6Njqr1ASH2yZ4SExzlg2tjsM/view?usp=share_link

@SiarheiSm
Copy link
Author

SiarheiSm commented Dec 27, 2024

one more crash (also without recycler view):
reproduces from time to time on Pixel 8 Pro Api 35 emulator:

java.lang.RuntimeException: Buffer not large enough for pixels
    at android.graphics.Bitmap.copyPixelsFromBuffer(Bitmap.java:680)
    at com.lottiefiles.dotlottie.core.drawable.DotLottieDrawable.draw(DotLottieDrawable.kt:396)
    at com.lottiefiles.dotlottie.core.widget.DotLottieAnimation.draw(DotLottieAnimation.kt:346)
    at android.view.View.updateDisplayListIfDirty(View.java:23692)
    at android.view.View.draw(View.java:24573)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4537)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4298)
    at androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw(ConstraintLayout.java:2082)
    at android.view.View.updateDisplayListIfDirty(View.java:23683)
    at android.view.View.draw(View.java:24573)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4537)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4298)
    at android.view.View.updateDisplayListIfDirty(View.java:23683)
    at android.view.View.draw(View.java:24573)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4537)
    at androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1277)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4298)
    at android.view.View.updateDisplayListIfDirty(View.java:23683)
    at android.view.View.draw(View.java:24573)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4537)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4298)
    at android.view.View.updateDisplayListIfDirty(View.java:23683)
    at android.view.View.draw(View.java:24573)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4537)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4298)
    at android.view.View.updateDisplayListIfDirty(View.java:23683)
    at android.view.View.draw(View.java:24573)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4537)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4298)
    at android.view.View.updateDisplayListIfDirty(View.java:23683)
    at android.view.View.draw(View.java:24573)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4537)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4298)
    at android.view.View.updateDisplayListIfDirty(View.java:23683)
    at android.view.View.draw(View.java:24573)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4537)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4298)
    at android.view.View.draw(View.java:24845)
    at com.android.internal.policy.DecorView.draw(DecorView.java:778)
    at android.view.View.updateDisplayListIfDirty(View.java:23692)
    at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:694)
    at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:700)
    at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:798)
    at android.view.ViewRootImpl.draw(ViewRootImpl.java:5659)
    at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:5312)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4303)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2917)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10324)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1406)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1415)
    at android.view.Choreographer.doCallbacks(Choreographer.java:1015)
    at android.view.Choreographer.doFrame(Choreographer.java:945)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1389)
    at android.os.Handler.handleCallback(Handler.java:959)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loopOnce(Looper.java:232)
    at android.os.Looper.loop(Looper.java:317)
    at android.app.ActivityThread.main(ActivityThread.java:8705)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)

@afsalz
Copy link
Contributor

afsalz commented Dec 27, 2024

hi @SiarheiSm Thanks for bringing this up. Let us investigate on our end and get back to you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants