rive-app / rive-app/rive-android

ANR: [split_config.armeabi_v7a.apk] rive::ClippingShape::onAddedClean

Open
#380 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

triage
Dominant language
Kotlin
Stars
538
Forks
66
PR merge metrics
No merged PRs in 30d

Description

Description

We're seeing this error reported by Android Vitals. Stack trace is:

"main" tid=1 Native
  #00  pc 0x00000000002034e0  /data/app/~~swlZ9xGle388k1O8MPO78A==/io.blueheart.socialanxiety-h8g37lmUm8wmW4YDBKeFzA==/split_config.arm64_v8a.apk (rive::ClippingShape::onAddedClean+108) (BuildId: 2f494393cfaaee8d79090be125ccb7f8536b17cc)
  #01  pc 0x000000000019ca60  /data/app/~~swlZ9xGle388k1O8MPO78A==/io.blueheart.socialanxiety-h8g37lmUm8wmW4YDBKeFzA==/split_config.arm64_v8a.apk (rive::Artboard::initialize+536) (BuildId: 2f494393cfaaee8d79090be125ccb7f8536b17cc)
  #02  pc 0x00000000001bc75c  /data/app/~~swlZ9xGle388k1O8MPO78A==/io.blueheart.socialanxiety-h8g37lmUm8wmW4YDBKeFzA==/split_config.arm64_v8a.apk (BuildId: 2f494393cfaaee8d79090be125ccb7f8536b17cc)
  #03  pc 0x00000000001b8d04  /data/app/~~swlZ9xGle388k1O8MPO78A==/io.blueheart.socialanxiety-h8g37lmUm8wmW4YDBKeFzA==/split_config.arm64_v8a.apk (rive::File::read+3752) (BuildId: 2f494393cfaaee8d79090be125ccb7f8536b17cc)
  #04  pc 0x00000000001b794c  /data/app/~~swlZ9xGle388k1O8MPO78A==/io.blueheart.socialanxiety-h8g37lmUm8wmW4YDBKeFzA==/split_config.arm64_v8a.apk (rive::File::import+1328) (BuildId: 2f494393cfaaee8d79090be125ccb7f8536b17cc)
  #05  pc 0x0000000000181ed4  /data/app/~~swlZ9xGle388k1O8MPO78A==/io.blueheart.socialanxiety-h8g37lmUm8wmW4YDBKeFzA==/split_config.arm64_v8a.apk (rive_android::Import+92) (BuildId: 2f494393cfaaee8d79090be125ccb7f8536b17cc)
  #06  pc 0x000000000017a5c4  /data/app/~~swlZ9xGle388k1O8MPO78A==/io.blueheart.socialanxiety-h8g37lmUm8wmW4YDBKeFzA==/split_config.arm64_v8a.apk (Java_app_rive_runtime_kotlin_core_File_import+76) (BuildId: 2f494393cfaaee8d79090be125ccb7f8536b17cc)
  at app.rive.runtime.kotlin.core.File.import (Native method)
  at app.rive.runtime.kotlin.core.File.<init> (File.kt:34)
  at app.rive.runtime.kotlin.RiveAnimationView.loadFileFromResource (RiveAnimationView.kt:435)
  at app.rive.runtime.kotlin.RiveAnimationView.setRiveResource (RiveAnimationView.kt:774)
  at app.rive.runtime.kotlin.RiveAnimationView.setRiveResource$default (RiveAnimationView.kt:751)
  at com.rivereactnative.RiveReactNativeView.reloadIfNeeded (RiveReactNativeView.kt:713)
  at com.rivereactnative.RiveReactNativeView.update (RiveReactNativeView.kt:575)
  at com.rivereactnative.RiveReactNativeViewManager.onAfterUpdateTransaction (RiveReactNativeViewManager.kt:346)
  at com.rivereactnative.RiveReactNativeViewManager.onAfterUpdateTransaction (RiveReactNativeViewManager.kt:11)
  at com.facebook.react.uimanager.ViewManager.updateProperties (ViewManager.java:102)
  at com.facebook.react.uimanager.ViewManager.createViewInstance (ViewManager.java:218)
  at com.facebook.react.uimanager.ViewManager.createView (ViewManager.java:145)
  at com.facebook.react.fabric.mounting.SurfaceMountingManager.createViewUnsafe (SurfaceMountingManager.java:674)
  at com.facebook.react.fabric.mounting.SurfaceMountingManager.createView (SurfaceMountingManager.java:635)
  at com.facebook.react.fabric.mounting.mountitems.IntBufferBatchMountItem.execute (IntBufferBatchMountItem.java:129)
  at com.facebook.react.fabric.mounting.MountItemDispatcher.executeOrEnqueue (MountItemDispatcher.java:370)
  at com.facebook.react.fabric.mounting.MountItemDispatcher.dispatchMountItems (MountItemDispatcher.java:265)
  at com.facebook.react.fabric.mounting.MountItemDispatcher.tryDispatchMountItems (MountItemDispatcher.java:122)
  at com.facebook.react.fabric.FabricUIManager$DispatchUIFrameCallback.doFrameGuarded (FabricUIManager.java:1396)
  at com.facebook.react.uimanager.GuardedFrameCallback.doFrame (GuardedFrameCallback.kt:25)
  at com.facebook.react.modules.core.ReactChoreographer.frameCallback$lambda$1 (ReactChoreographer.kt:59)
  at com.facebook.react.modules.core.ReactChoreographer.$r8$lambda$nSkFhrr5T7rop_XKwzlLov4NLLw (unavailable)
  at com.facebook.react.modules.core.ReactChoreographer$$ExternalSyntheticLambda0.doFrame (D8$$SyntheticClass)
  at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1299)
  at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1309)
  at android.view.Choreographer.doCallbacks (Choreographer.java:923)
  at android.view.Choreographer.doFrame (Choreographer.java:847)
  at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:1283)
  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:8757)
  at java.lang.reflect.Method.invoke (Native method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067)
Provide a Repro

I cannot repro myself.

Source .riv/.rev file

Can be provided on request.

Device & Versions (please complete the following information)
  • Device: occurs on a very broad range of devices so doesn't seem device specific
  • SDK Level: Mostly reported on Android 14 (SDK 34) but also reported on Android 12 (SDK 31), Android 13 (SDK 33) and Android 15 (SDK 35)
Additional context

rive-react-native 9.3.4
expo 53 (new architecture enabled)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the native stack at rive::ClippingShape::onAddedClean and follow Artboard::initialize through rive::File::import and Import; the Kotlin entry points are File.kt:34 and RiveAnimationView.kt:435. Obtain the source .riv file and reproduce the ANR on the reported Android versions. Done means identifying and fixing the crash, with verification that the animation imports without the ANR.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin, react-native
Domain
computer-graphics, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.