Skip to content

Mounting animation causes hard crash on certain android devices (OnePlus 12) #310

@kolyaventuri

Description

@kolyaventuri

Description

  • Mounting (seemingly) any Rive animation on OnePlus devices running OxygenOS (Android 15) hard crashes the app
    • Have not to-date observed on any other Android devices
    • Seems to be related to font fallbacks
    • Animation is not required to play in order to cause the crash-- simply mounting the <RiveContainer /> component causes the app to crash

Provide a Repro

  • Mount any rive animation on a OnePlus device (we have seen this on a OnePlus 12)

Source .riv/.rev file

N/A

Expected behavior

  • Animation should mount without app crashing

Screenshots

N/A

Additional context

Stacktrace:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 11773 >>> com.*** <<<

backtrace:
  #00  pc 0x0000000000092518  /apex/com.android.runtime/lib64/bionic/libc.so (abort+172)
  #01  pc 0x0000000000933d5c  /apex/com.android.art/lib64/libart.so (art::Runtime::Abort(char const*)+344)
  #02  pc 0x00000000000160fc  /apex/com.android.art/lib64/libbase.so (android::base::SetAborter(std::__1::function<void (char const*)>&&)::$_0::__invoke(char const*)+80)
  #03  pc 0x00000000000156d0  /apex/com.android.art/lib64/libbase.so (android::base::LogMessage::~LogMessage()+516)
  #04  pc 0x00000000003025d8  /apex/com.android.art/lib64/libart.so (art::Runtime::DetachCurrentThread(bool)+280)
  #05  pc 0x00000000006d0894  /apex/com.android.art/lib64/libart.so (art::JII::DetachCurrentThread(_JavaVM*)+56)
  #06  pc 0x000000000021d0a4  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/split_config.arm64_v8a.apk!librive-android.so (rive_android::JNIExceptionHandler::check_and_rethrow(_JNIEnv*)+236) (BuildId: b60165676399bd7d7fdd382cdb4d730713490342)
  #07  pc 0x000000000021d18c  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/split_config.arm64_v8a.apk!librive-android.so (rive_android::JNIExceptionHandler::CallObjectMethod(_JNIEnv*, _jobject*, _jmethodID*, ...)+120) (BuildId: b60165676399bd7d7fdd382cdb4d730713490342)
  #08  pc 0x000000000021be50  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/split_config.arm64_v8a.apk!librive-android.so (rive_android::FontHelper::getSystemFontBytes()+200) (BuildId: b60165676399bd7d7fdd382cdb4d730713490342)
  #09  pc 0x000000000021bf90  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/split_config.arm64_v8a.apk!librive-android.so (rive_android::FontHelper::findFontFallback(rive::Span<unsigned int const>)+124) (BuildId: b60165676399bd7d7fdd382cdb4d730713490342)
  #10  pc 0x00000000002bc300  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/split_config.arm64_v8a.apk!librive-android.so (HBFont::onShapeText(rive::Span<unsigned int const>, rive::Span<rive::TextRun const>, int) const+1804) (BuildId: b60165676399bd7d7fdd382cdb4d730713490342)
  #11  pc 0x00000000002e6a9c  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/split_config.arm64_v8a.apk!librive-android.so (rive::Font::shapeText(rive::Span<unsigned int const>, rive::Span<rive::TextRun const>, int) const+56) (BuildId: b60165676399bd7d7fdd382cdb4d730713490342)
  #12  pc 0x00000000002fd440  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/split_config.arm64_v8a.apk!librive-android.so (rive::Text::update(rive::ComponentDirt)+1396) (BuildId: b60165676399bd7d7fdd382cdb4d730713490342)
  #13  pc 0x000000000022abb0  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/split_config.arm64_v8a.apk!librive-android.so (rive::Artboard::updatePass(bool)+336) (BuildId: b60165676399bd7d7fdd382cdb4d730713490342)
  #14  pc 0x000000000022afb0  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/split_config.arm64_v8a.apk!librive-android.so (rive::Artboard::advance(float, rive::AdvanceFlags)+196) (BuildId: b60165676399bd7d7fdd382cdb4d730713490342)
  #15  pc 0x0000000000215f54  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/split_config.arm64_v8a.apk!librive-android.so (Java_app_rive_runtime_kotlin_core_File_cppArtboardByIndex+44) (BuildId: b60165676399bd7d7fdd382cdb4d730713490342)
  #16  pc 0x000000000038e3c0  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+112)
  #17  pc 0x0000000000781680  /apex/com.android.art/lib64/libart.so (nterp_helper+5648)
  #18  pc 0x00000000002214f0  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/base.apk (app.rive.runtime.kotlin.core.File.artboard+8)
  #19  pc 0x0000000000780fc4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
  #20  pc 0x000000000022167a  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/base.apk (app.rive.runtime.kotlin.core.File.getFirstArtboard+2)
  #21  pc 0x0000000000780fc4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
  #22  pc 0x000000000021f438  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/base.apk (app.rive.runtime.kotlin.controllers.RiveFileController.setupScene$kotlin_release+116)
  #23  pc 0x0000000000780fc4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
  #24  pc 0x000000000021aa10  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/base.apk (app.rive.runtime.kotlin.RiveAnimationView$setRiveResource$2.invoke+52)
  #25  pc 0x0000000000780fc4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
  #26  pc 0x000000000021a9a0  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/base.apk (app.rive.runtime.kotlin.RiveAnimationView$setRiveResource$2.invoke+4)
  #27  pc 0x0000000000781de4  /apex/com.android.art/lib64/libart.so (nterp_helper+7540)
  #28  pc 0x000000000021b518  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/base.apk (app.rive.runtime.kotlin.RiveAnimationView.loadFileFromResource+252)
  #29  pc 0x0000000000780fc4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
  #30  pc 0x000000000021c400  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/base.apk (app.rive.runtime.kotlin.RiveAnimationView.setRiveResource+116)
  #31  pc 0x00000000007816c8  /apex/com.android.art/lib64/libart.so (nterp_helper+5720)
  #32  pc 0x000000000021c364  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/base.apk (app.rive.runtime.kotlin.RiveAnimationView.setRiveResource$default+192)
  #33  pc 0x0000000000780854  /apex/com.android.art/lib64/libart.so (nterp_helper+2020)
  #34  pc 0x000000000030a69e  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/base.apk (com.rivereactnative.RiveReactNativeView.reloadIfNeeded+122)
  #35  pc 0x0000000000780fc4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
  #36  pc 0x000000000030aeb8  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/base.apk (com.rivereactnative.RiveReactNativeView.update)
  #37  pc 0x0000000000780fc4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
  #38  pc 0x00000000003096fe  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/base.apk (com.rivereactnative.RiveReactNativeViewManager.onAfterUpdateTransaction+22)
  #39  pc 0x0000000000780fc4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
  #40  pc 0x00000000003096d0  /data/app/~~5ra3kBePF-L9ReuoT2wjhQ==/com.***-dcoVpR1u_QZuXZ1w_pICZQ==/base.apk (com.rivereactnative.RiveReactNativeViewManager.onAfterUpdateTransaction+4)
  #41  pc 0x0000000000036080  [anon_shmem:dalvik-jit-code-cache] (com.facebook.react.uimanager.ViewManager.updateProperties+224)
  #42  pc 0x000000000004ec08  [anon_shmem:dalvik-jit-code-cache] (com.facebook.react.uimanager.ViewManager.createViewInstance+600)
  #43  pc 0x0000000000055730  [anon_shmem:dalvik-jit-code-cache] (com.facebook.react.uimanager.ViewManager.createView+112)
  #44  pc 0x00000000000207f4  [anon_shmem:dalvik-jit-code-cache] (com.facebook.react.uimanager.NativeViewHierarchyManager.createView+372)
  #45  pc 0x0000000000047154  [anon_shmem:dalvik-jit-code-cache] (com.facebook.react.uimanager.UIViewOperationQueue$CreateViewOperation.execute+164)
  #46  pc 0x000000000001fb18  [anon_shmem:dalvik-jit-code-cache] (com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.dispatchPendingNonBatchedOperations+440)
  #47  pc 0x0000000000031c2c  [anon_shmem:dalvik-jit-code-cache] (com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded+140)
  #48  pc 0x0000000000069c24  [anon_shmem:dalvik-jit-code-cache] (com.facebook.react.uimanager.GuardedFrameCallback.doFrame+100)
  #49  pc 0x000000000014efec  [anon_shmem:dalvik-jit-code-cache] (com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame+364)
  #50  pc 0x000000000005f2f4  [anon_shmem:dalvik-jit-code-cache] (com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame+100)
  #51  pc 0x0000000000b8888c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.view.Choreographer.doCallbacks+1324)
  #52  pc 0x0000000000b8984c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.view.Choreographer.doFrame+3180)
  #53  pc 0x0000000000c2364c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.view.Choreographer$FrameDisplayEventReceiver.run+76)
  #54  pc 0x0000000000a2f704  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Handler.dispatchMessage+68)
  #55  pc 0x0000000000a36008  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loopOnce+1224)
  #56  pc 0x0000000000a35a9c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loop+684)
  #57  pc 0x00000000007afb40  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.ActivityThread.main+2288)
  #58  pc 0x0000000000368a40  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640)
  #59  pc 0x00000000003644d4  /apex/com.android.art/lib64/libart.so (_jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+732)
  #60  pc 0x00000000006c9298  /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+32)
  #61  pc 0x0000000000394274  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+116)
  #62  pc 0x0000000000d9e754  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+116)
  #63  pc 0x0000000000dab8d8  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.ZygoteInit.main+5256)
  #64  pc 0x0000000000368a40  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640)
  #65  pc 0x0000000000353f4c  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+204)
  #66  pc 0x0000000000351f00  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+512)
  #67  pc 0x000000000073da58  /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+104)
  #68  pc 0x00000000000e142c  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+108)
  #69  pc 0x00000000000f7968  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+1008)
  #70  pc 0x00000000000046fc  /system/bin/app_process64 (main+1596)
  #71  pc 0x000000000008bea4  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+120)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions