google / filament

Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
https://google.github.io/filament/
Apache License 2.0
17.8k stars 1.89k forks source link

Native Crash with java.lang.NoSuchMethodError on Samsung S8+ #2855

Closed Sheng-Xuan closed 4 years ago

Sheng-Xuan commented 4 years ago

Describe the bug Running demo app from https://github.com/google-ar/sceneform-android-sdk, added a button to call recreate() in the activity running AR. Sometimes the app will crash after activity recreated. This is to replicate a crash on my own project. Which I can replicate this issue easily, maybe because more models and components are loaded in my project. Both projects are using sceneform that has dependency of filament-android 1.7.0 So far I only can reproduce this bug on S8+ US version, I don't have this issue on s10 and pixel 4. Logs: 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] JNI DETECTED ERROR IN APPLICATION: JNI GetMethodID called with pending exception java.lang.NoSuchMethodError: no non-static method "Landroid/graphics/SurfaceTexture;.nativeUpdateTexImage()V" 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] (Throwable with empty stack trace) 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] in call to GetMethodID 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] "Thread-16" prio=7 tid=35 Runnable 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] | group="main" sCount=0 dsCount=0 flags=0 obj=0x12ec0000 self=0x7a0137a000 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] | sysTid=27975 nice=-4 cgrp=default sched=0/0 handle=0x7a0e8074f0 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] | state=R schedstat=( 11217673564 2895145980 9037 ) utm=398 stm=723 core=7 HZ=100 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] | stack=0x7a0e70c000-0x7a0e70e000 stackSize=1009KB 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] | held mutexes= "mutator lock"(shared held) 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] native: #00 pc 00000000003c28e8 /system/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+220) 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] native: #01 pc 000000000049101c /system/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+352) 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] native: #02 pc 00000000002e5dc8 /system/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+968) 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] native: #03 pc 00000000002e61d8 /system/lib64/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+116) 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] native: #04 pc 00000000000fd5fc /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*, ...)+148) 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] native: #05 pc 00000000000fbfd8 /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::(anonymous namespace)::JniValueType)+1152) 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] native: #06 pc 00000000000fb344 /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::(anonymous namespace)::JniValueType*)+628) 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] native: #07 pc 00000000000ff458 /system/lib64/libart.so (art::(anonymous namespace)::CheckJNI::GetMethodIDInternal(char const*, _JNIEnv*, _jclass*, char const*, char const*, bool)+688) 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] native: #08 pc 000000000006eb14 /data/app/com.google.ar.sceneform.samples.gltf-krDUmrDjr0STKd-208ij6A==/lib/arm64/libfilament-jni.so (???) 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] (no managed stack frames) 2020-07-23 17:51:20.242 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: java_vm_ext.cc:542] 2020-07-23 17:51:20.281 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: thread.cc:2155] No pending exception expected: java.lang.NoSuchMethodError: no non-static method "Landroid/graphics/SurfaceTexture;.nativeUpdateTexImage()V" 2020-07-23 17:51:20.281 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: thread.cc:2155] (Throwable with empty stack trace) 2020-07-23 17:51:20.281 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: thread.cc:2155] 2020-07-23 17:51:20.303 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] Runtime aborting --- recursively, so no thread-specific detail! 2020-07-23 17:51:20.303 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #00 pc 00000000003c28e8 /system/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+220) 2020-07-23 17:51:20.303 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #01 pc 0000000000465bb8 /system/lib64/libart.so (art::Runtime::Abort(char const*)+308) 2020-07-23 17:51:20.303 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #02 pc 0000000000008ce0 /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+724) 2020-07-23 17:51:20.303 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #03 pc 00000000004961fc /system/lib64/libart.so (art::Thread::AssertNoPendingException() const+1152) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #04 pc 000000000011c3fc /system/lib64/libart.so (art::ClassLinker::FindClass(art::Thread*, char const*, art::Handle<art::mirror::ClassLoader>)+64) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #05 pc 0000000000136a38 /system/lib64/libart.so (art::ClassLinker::DoResolveType(art::dex::TypeIndex, art::Handle<art::mirror::DexCache>, art::Handle<art::mirror::ClassLoader>)+188) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #06 pc 00000000004c0998 /system/lib64/libart.so (art::verifier::MethodVerifier::ScanTryCatchBlocks()+504) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #07 pc 00000000004bdb8c /system/lib64/libart.so (art::verifier::MethodVerifier::Verify()+684) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #08 pc 00000000004c0468 /system/lib64/libart.so (art::verifier::MethodVerifier::FindLocksAtDexPc()+140) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #09 pc 00000000004c0350 /system/lib64/libart.so (art::verifier::MethodVerifier::FindLocksAtDexPc(art::ArtMethod*, unsigned int, std::__1::vector<art::verifier::MethodVerifier::DexLockInfo, std::__1::allocator<art::verifier::MethodVerifier::DexLockInfo>>*, unsigned int)+536) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #10 pc 00000000003c01cc /system/lib64/libart.so (art::Monitor::VisitLocks(art::StackVisitor*, void (*)(art::mirror::Object*, void*), void*, bool)+828) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #11 pc 000000000049f73c /system/lib64/libart.so (art::MonitorObjectsStackVisitor::VisitFrame()+164) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #12 pc 000000000047f758 /system/lib64/libart.so (_ZN3art12StackVisitor9WalkStackILNS0_16CountTransitionsE0EEEvb+1084) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #13 pc 0000000000494ff4 /system/lib64/libart.so (art::Thread::DumpJavaStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, bool) const+320) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #14 pc 0000000000491034 /system/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+376) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #15 pc 00000000004aad00 /system/lib64/libart.so (art::DumpCheckpoint::Run(art::Thread*)+844) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #16 pc 00000000004a3ee0 /system/lib64/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+1464) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #17 pc 00000000004a2f34 /system/lib64/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool)+1120) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #18 pc 0000000000465c08 /system/lib64/libart.so (art::Runtime::Abort(char const*)+388) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #19 pc 0000000000008ce0 /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+724) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #20 pc 00000000002e6068 /system/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1640) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #21 pc 00000000002e61d8 /system/lib64/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+116) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #22 pc 00000000000fd5fc /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*, ...)+148) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #23 pc 00000000000fbfd8 /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::(anonymous namespace)::JniValueType)+1152) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #24 pc 00000000000fb344 /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::(anonymous namespace)::JniValueType*)+628) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #25 pc 00000000000ff458 /system/lib64/libart.so (art::(anonymous namespace)::CheckJNI::GetMethodIDInternal(char const*, _JNIEnv*, _jclass*, char const*, char const*, bool)+688) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] #26 pc 000000000006eb14 /data/app/com.google.ar.sceneform.samples.gltf-krDUmrDjr0STKd-208ij6A==/lib/arm64/**libfilament-jni.so** (???) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:574] 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:582] No pending exception expected: java.lang.NoSuchMethodError: no non-static method "Landroid/graphics/SurfaceTexture;.nativeUpdateTexImage()V" 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:582] (Throwable with empty stack trace) 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:582] 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/rm.samples.glt: runtime.cc:582] 2020-07-23 17:51:20.304 27943-27975/com.google.ar.sceneform.samples.gltf A/libc: Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 27975 (Thread-16), pid 27943 (rm.samples.gltf) 2020-07-23 17:51:20.514 29159-29159/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 2020-07-23 17:51:20.514 29159-29159/? A/DEBUG: Build fingerprint: 'samsung/dream2qltesq/dream2qltesq:9/PPR1.180610.011/G955USQS7DTB3:user/release-keys' 2020-07-23 17:51:20.514 29159-29159/? A/DEBUG: Revision: '12' 2020-07-23 17:51:20.514 29159-29159/? A/DEBUG: ABI: 'arm64' 2020-07-23 17:51:20.514 29159-29159/? A/DEBUG: pid: 27943, tid: 27975, name: Thread-16 >>> com.google.ar.sceneform.samples.gltf <<< 2020-07-23 17:51:20.515 29159-29159/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- 2020-07-23 17:51:20.515 29159-29159/? A/DEBUG: Abort message: 'java_vm_ext.cc:542] JNI DETECTED ERROR IN APPLICATION: JNI GetMethodID called with pending exception java.lang.NoSuchMethodError: no non-static method "Landroid/graphics/SurfaceTexture;.nativeUpdateTexImage()V"' 2020-07-23 17:51:20.515 29159-29159/? A/DEBUG: x0 0000000000000000 x1 0000000000006d47 x2 0000000000000006 x3 0000000000000008 2020-07-23 17:51:20.515 29159-29159/? A/DEBUG: x4 0000000000000000 x5 0000000000000000 x6 0000000000000000 x7 0000000000000080 2020-07-23 17:51:20.515 29159-29159/? A/DEBUG: x8 0000000000000083 x9 2e2ed3a42c18572e x10 0000000000000000 x11 fffffffc7ffffbdf 2020-07-23 17:51:20.515 29159-29159/? A/DEBUG: x12 0000000000000001 x13 0000000000000038 x14 ffffffffffffffff x15 000052c35654cdbc 2020-07-23 17:51:20.515 29159-29159/? A/DEBUG: x16 0000007aade6a2a0 x17 0000007aadd8af24 x18 0000000000000010 x19 0000000000006d27 2020-07-23 17:51:20.515 29159-29159/? A/DEBUG: x20 0000000000006d47 x21 00000079f5692f00 x22 000000000000000d x23 0000007a27edcc40 2020-07-23 17:51:20.515 29159-29159/? A/DEBUG: x24 000000000000000d x25 0000007a0e805a59 x26 0000007a27edcc40 x27 0000000000001bfa 2020-07-23 17:51:20.515 29159-29159/? A/DEBUG: x28 0000007a0e807588 x29 0000007a0e8059c0 2020-07-23 17:51:20.515 29159-29159/? A/DEBUG: sp 0000007a0e805980 lr 0000007aadd7d304 pc 0000007aadd7d32c 2020-07-23 17:51:20.519 29159-29159/? A/DEBUG: backtrace: 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #00 pc 000000000002232c /system/lib64/libc.so (abort+116) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #01 pc 0000000000465fa0 /system/lib64/libart.so (art::Runtime::Abort(char const*)+1308) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #02 pc 0000000000008ce0 /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+724) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #03 pc 00000000004961fc /system/lib64/libart.so (art::Thread::AssertNoPendingException() const+1152) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #04 pc 000000000011c3fc /system/lib64/libart.so (art::ClassLinker::FindClass(art::Thread*, char const*, art::Handle<art::mirror::ClassLoader>)+64) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #05 pc 0000000000136a38 /system/lib64/libart.so (art::ClassLinker::DoResolveType(art::dex::TypeIndex, art::Handle<art::mirror::DexCache>, art::Handle<art::mirror::ClassLoader>)+188) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #06 pc 00000000004c0998 /system/lib64/libart.so (art::verifier::MethodVerifier::ScanTryCatchBlocks()+504) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #07 pc 00000000004bdb8c /system/lib64/libart.so (art::verifier::MethodVerifier::Verify()+684) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #08 pc 00000000004c0468 /system/lib64/libart.so (art::verifier::MethodVerifier::FindLocksAtDexPc()+140) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #09 pc 00000000004c0350 /system/lib64/libart.so (art::verifier::MethodVerifier::FindLocksAtDexPc(art::ArtMethod*, unsigned int, std::__1::vector<art::verifier::MethodVerifier::DexLockInfo, std::__1::allocator<art::verifier::MethodVerifier::DexLockInfo>>*, unsigned int)+536) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #10 pc 00000000003c01cc /system/lib64/libart.so (art::Monitor::VisitLocks(art::StackVisitor*, void (*)(art::mirror::Object*, void*), void*, bool)+828) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #11 pc 000000000049f73c /system/lib64/libart.so (art::MonitorObjectsStackVisitor::VisitFrame()+164) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #12 pc 000000000047f758 /system/lib64/libart.so (_ZN3art12StackVisitor9WalkStackILNS0_16CountTransitionsE0EEEvb+1084) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #13 pc 0000000000494ff4 /system/lib64/libart.so (art::Thread::DumpJavaStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, bool) const+320) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #14 pc 0000000000491034 /system/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+376) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #15 pc 00000000004aad00 /system/lib64/libart.so (art::DumpCheckpoint::Run(art::Thread*)+844) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #16 pc 00000000004a3ee0 /system/lib64/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+1464) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #17 pc 00000000004a2f34 /system/lib64/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool)+1120) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #18 pc 0000000000465c08 /system/lib64/libart.so (art::Runtime::Abort(char const*)+388) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #19 pc 0000000000008ce0 /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+724) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #20 pc 00000000002e6068 /system/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1640) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #21 pc 00000000002e61d8 /system/lib64/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+116) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #22 pc 00000000000fd5fc /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*, ...)+148) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #23 pc 00000000000fbfd8 /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::(anonymous namespace)::JniValueType)+1152) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #24 pc 00000000000fb344 /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::(anonymous namespace)::JniValueType*)+628) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #25 pc 00000000000ff458 /system/lib64/libart.so (art::(anonymous namespace)::CheckJNI::GetMethodIDInternal(char const*, _JNIEnv*, _jclass*, char const*, char const*, bool)+688) 2020-07-23 17:51:20.523 29159-29159/? A/DEBUG: #26 pc 000000000006eb14 /data/app/com.google.ar.sceneform.samples.gltf-krDUmrDjr0STKd-208ij6A==/lib/arm64/**libfilament-jni.so**

To Reproduce Steps to reproduce the behavior:

  1. build demo app from https://github.com/google-ar/sceneform-android-sdk
  2. added a button to call recreate() in the GltfActivity
  3. press the button, if not crashed, press again.

Expected behavior A clear and concise description of what you expected to happen. App should not crash

Screenshots If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

Smartphone (please complete the following information):

Additional context Since sceneform is archived now, there is a memory leak issue that have not fixed yet. I am not sure if the memory leak issue is related to this crash. Memory Leak log: E/WindowManager: android.view.WindowLeaked: Activity com.google.ar.sceneform.samples.gltf.GltfActivity has leaked window android.widget.FrameLayout{c31f38 V.E...... ......I. 0,0-0,0} that was originally added here at android.view.ViewRootImpl.(ViewRootImpl.java:701) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:365) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93) at com.google.ar.sceneform.rendering.ViewAttachmentManager.lambda$onResume$0$ViewAttachmentManager(ViewAttachmentManager.java:64) at com.google.ar.sceneform.rendering.-$$Lambda$ViewAttachmentManager$zHzKkfBniDn8VWbgoIAhBR19Pac.run(Unknown Source:2) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7073) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)

If using LeakCanary to check, there is an obfuscated object being leaked. More details of the leak can check this project I found on github: https://github.com/another-dave/scene-form-memory-leak-example

Actually not very sure this issue is more related to ArCore or Filament, but since filament.so is in the log, I just report here. Thanks

romainguy commented 4 years ago

This was fixed in 1.8.0