google-ar / sceneform-android-sdk

Sceneform SDK for Android
https://developers.google.com/sceneform/develop/
Apache License 2.0
1.23k stars 604 forks source link

sceneform-animation crashing when unity embedded in app #715

Open josh-burton opened 5 years ago

josh-burton commented 5 years ago

I'm working on a react native app that has an Android native view with sceneform, and also embeds a unity app.

When trying to load a model with animation, I'm getting this native crash

Crash ``` A/libc: Fatal signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0x753d28e8 in tid 17528, pid 17528 *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ld fingerprint: 'samsung/starltexx/starlte:9/PPR1.180610.011/G960FXXU2CSC8:user/release-keys' ision: '26' : 'arm' : 17528, tid: 17528, name: >>> com.myapp <<< nal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0x753d28e8 r0 b367d540 r1 753d28e8 r2 00000000 r3 00000030 r4 00000000 r5 00000000 r6 00000001 r7 00000000 r8 00000000 r9 753d28e8 r10 00000030 r11 b9b7dbbc ip 00000040 sp ff9ebb98 lr e5f83af5 pc b740d52a ktrace: #00 pc 0000852a /data/app/com.myapp-kRcDwIkUO9Zvn3f8J4bTPA==/lib/arm/libsceneform_animation.so #01 pc 00007df5 /data/app/com.myapp-kRcDwIkUO9Zvn3f8J4bTPA==/lib/arm/libsceneform_animation.so #02 pc 00008af7 /data/app/com.myapp-kRcDwIkUO9Zvn3f8J4bTPA==/lib/arm/libsceneform_animation.so (Java_com_google_ar_sceneform_animation_ModelSkeletonRig_createSkeletonRigNative+194) #03 pc 00415679 /system/lib/libart.so (art_quick_generic_jni_trampoline+40) #04 pc 00411175 /system/lib/libart.so (art_quick_invoke_stub_internal+68) #05 pc 003ea239 /system/lib/libart.so (art_quick_invoke_stub+224) #06 pc 000a1615 /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136) #07 pc 001e8829 /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+236) #08 pc 001e3317 /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+814) #09 pc 003e5d21 /system/lib/libart.so (MterpInvokeDirect+196) #10 pc 00404014 /system/lib/libart.so (ExecuteMterpImpl+14484) #11 pc 004dd1d6 /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.myapp-kRcDwIkUO9Zvn3f8J4bTPA==/base.apk_17528_17528 (deleted) (com.google.ar.sceneform.animation.ModelSkeletonRig.+142) #12 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #13 pc 001cc179 /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152) #14 pc 001e32ff /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790) #15 pc 003e5d21 /system/lib/libart.so (MterpInvokeDirect+196) #16 pc 00404014 /system/lib/libart.so (ExecuteMterpImpl+14484) #17 pc 004dd510 /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.myapp-kRcDwIkUO9Zvn3f8J4bTPA==/base.apk_17528_17528 (deleted) (com.google.ar.sceneform.animation.f.create+4) #18 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #19 pc 001cc179 /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152) #20 pc 001e32ff /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790) #21 pc 003e4e93 /system/lib/libart.so (MterpInvokeVirtual+442) #22 pc 00403f14 /system/lib/libart.so (ExecuteMterpImpl+14228) #23 pc 004f53cc /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.myapp-kRcDwIkUO9Zvn3f8J4bTPA==/base.apk_17528_17528 (deleted) (com.google.ar.sceneform.rendering.SkeletonRig.createInstance+4) #24 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #25 pc 001cc179 /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152) #26 pc 001e32ff /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790) #27 pc 003e5e6f /system/lib/libart.so (MterpInvokeStatic+130) #28 pc 00404094 /system/lib/libart.so (ExecuteMterpImpl+14612) #29 pc 004ed62c /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.myapp-kRcDwIkUO9Zvn3f8J4bTPA==/base.apk_17528_17528 (deleted) (com.google.ar.sceneform.rendering.LoadRenderableFromSfbTask.setupAnimation+48) #30 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #31 pc 001cc179 /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152) #32 pc 001e32ff /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790) #33 pc 003e5d21 /system/lib/libart.so (MterpInvokeDirect+196) #34 pc 00404014 /system/lib/libart.so (ExecuteMterpImpl+14484) #35 pc 004ed75e /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.myapp-kRcDwIkUO9Zvn3f8J4bTPA==/base.apk_17528_17528 (deleted) (com.google.ar.sceneform.rendering.LoadRenderableFromSfbTask.setupFilamentGeometryBuffers+274) #36 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #37 pc 001cc179 /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152) #38 pc 001e32ff /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790) #39 pc 003e5d21 /system/lib/libart.so (MterpInvokeDirect+196) #40 pc 00404014 /system/lib/libart.so (ExecuteMterpImpl+14484) #41 pc 004ec4a2 /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.myapp-kRcDwIkUO9Zvn3f8J4bTPA==/base.apk_17528_17528 (deleted) (com.google.ar.sceneform.rendering.LoadRenderableFromSfbTask.setupFilament+6) #42 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #43 pc 001cc179 /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152) #44 pc 001e32ff /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790) #45 pc 003e5d21 /system/lib/libart.so (MterpInvokeDirect+196) #46 pc 00404014 /system/lib/libart.so (ExecuteMterpImpl+14484) #47 pc 004ec466 /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.myapp-kRcDwIkUO9Zvn3f8J4bTPA==/base.apk_17528_17528 (deleted) (com.google.ar.sceneform.rendering.LoadRenderableFromSfbTask.lambda$downloadAndProcessRenderable$2+6) #48 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #49 pc 001cc179 /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152) #50 pc 001e32ff /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790) #51 pc 003e5e6f /system/lib/libart.so (MterpInvokeStatic+130) #52 pc 00404094 /system/lib/libart.so (ExecuteMterpImpl+14612) #53 pc 004e88b8 /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.myapp-kRcDwIkUO9Zvn3f8J4bTPA==/base.apk_17528_17528 (deleted) (com.google.ar.sceneform.rendering.-$$Lambda$LoadRenderableFromSfbTask$0wXnjSyvkYWGOjtkSvpSQVC_azM.apply+8) #54 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #55 pc 001cc179 /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152) #56 pc 001e32ff /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790) #57 pc 003e5a63 /system/lib/libart.so (MterpInvokeInterface+1010) #58 pc 00404114 /system/lib/libart.so (ExecuteMterpImpl+14740) #59 pc 001dfb98 /system/framework/boot.vdex (java.util.concurrent.CompletableFuture.uniApply+90) #60 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #61 pc 001cc179 /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152) #62 pc 001e32ff /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790) #63 pc 003e72dd /system/lib/libart.so (MterpInvokeVirtualQuick+428) #64 pc 00407c94 /system/lib/libart.so (ExecuteMterpImpl+29972) #65 pc 001df188 /system/framework/boot.vdex (java.util.concurrent.CompletableFuture$UniApply.tryFire+32) #66 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #67 pc 001cc179 /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152) #68 pc 001e32ff /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790) #69 pc 003e72dd /system/lib/libart.so (MterpInvokeVirtualQuick+428) #70 pc 00407c94 /system/lib/libart.so (ExecuteMterpImpl+29972) #71 pc 001dee10 /system/framework/boot.vdex (java.util.concurrent.CompletableFuture$Completion.run+2) #72 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #73 pc 001cc179 /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152) #74 pc 001e32ff /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790) #75 pc 003e5a63 /system/lib/libart.so (MterpInvokeInterface+1010) #76 pc 00404114 /system/lib/libart.so (ExecuteMterpImpl+14740) #77 pc 00da8fa0 /system/framework/boot-framework.vdex (android.os.Handler.handleCallback+4) #78 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #79 pc 001cc179 /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152) #80 pc 001e32ff /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790) #81 pc 003e5e6f /system/lib/libart.so (MterpInvokeStatic+130) #82 pc 00404094 /system/lib/libart.so (ExecuteMterpImpl+14612) #83 pc 00c53288 /system/framework/boot-framework.vdex (android.os.Handler.dispatchMessage+8) #84 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #85 pc 001cc179 /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152) #86 pc 001e32ff /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790) #87 pc 003e4e93 /system/lib/libart.so (MterpInvokeVirtual+442) #88 pc 00403f14 /system/lib/libart.so (ExecuteMterpImpl+14228) #89 pc 00c5bef2 /system/framework/boot-framework.vdex (android.os.Looper.loop+406) #90 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #91 pc 001cc179 /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152) #92 pc 001e32ff /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790) #93 pc 003e5e6f /system/lib/libart.so (MterpInvokeStatic+130) #94 pc 00404094 /system/lib/libart.so (ExecuteMterpImpl+14612) #95 pc 004bb1a4 /system/framework/boot-framework.vdex (android.app.ActivityThread.main+220) #96 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #97 pc 001cc0bf /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+82) #98 pc 003d8979 /system/lib/libart.so (artQuickToInterpreterBridge+880) #99 pc 004156ff /system/lib/libart.so (art_quick_to_interpreter_bridge+30) #100 pc 00411175 /system/lib/libart.so (art_quick_invoke_stub_internal+68) #101 pc 003ea33b /system/lib/libart.so (art_quick_invoke_static_stub+222) #102 pc 000a1627 /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+154) #103 pc 0034aee5 /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52) #104 pc 0034c335 /system/lib/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned int)+1024) #105 pc 002fdee5 /system/lib/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+40) #106 pc 00113307 /system/framework/arm/boot.oat (offset 0x10d000) (java.lang.Class.getDeclaredMethodInternal [DEDUPED]+110) #107 pc 00411175 /system/lib/libart.so (art_quick_invoke_stub_internal+68) #108 pc 003ea239 /system/lib/libart.so (art_quick_invoke_stub+224) #109 pc 000a1615 /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136) #110 pc 001e8829 /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+236) #111 pc 001e3317 /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+814) #112 pc 003e4e93 /system/lib/libart.so (MterpInvokeVirtual+442) #113 pc 00403f14 /system/lib/libart.so (ExecuteMterpImpl+14228) #114 pc 013ba49e /system/framework/boot-framework.vdex (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22) #115 pc 001c7a93 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.386982429+378) #116 pc 001cc0bf /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+82) #117 pc 003d8979 /system/lib/libart.so (artQuickToInterpreterBridge+880) #118 pc 004156ff /system/lib/libart.so (art_quick_to_interpreter_bridge+30) #119 pc 00be0679 /system/framework/arm/boot-framework.oat (offset 0x3fd000) (com.android.internal.os.ZygoteInit.main+1824) #120 pc 00411175 /system/lib/libart.so (art_quick_invoke_stub_internal+68) #121 pc 003ea33b /system/lib/libart.so (art_quick_invoke_static_stub+222) #122 pc 000a1627 /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+154) #123 pc 0034aee5 /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52) #124 pc 0034ad0f /system/lib/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+310) #125 pc 002918b9 /system/lib/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+444) #126 pc 000718e3 /system/lib/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+30) #127 pc 00073d4d /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector const&, bool)+476) #128 pc 00002f0d /system/bin/app_process32 (main+728) #129 pc 0008c27d /system/lib/libc.so (__libc_init+48) #130 pc 00002bf3 /system/bin/app_process32 (_start_main+38) #131 pc 00000306 ```

I've narrowed this down a little bit:

It only happens when sceneform animation is compiled AND when the unity app is compiled. Removing either one of these dependencies from the app fixes the crash.

I don't have much to go on in terms of fixing this. I'd love to be able to use animations in my app but right now I can't.

Dings3 commented 5 years ago

Looks like this issue: https://github.com/google-ar/sceneform-android-sdk/issues/608