• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps Native crashes in Google Play Console

Hi guys,

I have an Android app, which includes WebView component and some native libraries, such as PDFium.

It is published in Google Play store and while checking the list of reported crashes from users in Google Play Console, I found various crashes/aborts in native code, without any of my classes or bundled libraries mentioned in the stacktrace.

I haven't been able to reproduce any of the crashes (I am not even sure how to emulate them, as I didn't find any hints in the stacktraces). Are those crashes something I should be concerned about? If yes, are there any hints for reproducing / debugging / fixing these crashes?

Some examples from the Google Play Console are below, I appreciate any help/

Code:
backtrace:
  #00  pc 000000000006d5d4  /system/lib64/libc.so (tgkill+8)
  #00  pc 000000000006a9f4  /system/lib64/libc.so (pthread_kill+64)
  #00  pc 0000000000024018  /system/lib64/libc.so (raise+24)
  #00  pc 000000000001c8bc  /system/lib64/libc.so (abort+52)
  #00  pc 0000000000010aa8  /system/lib64/libcutils.so (__android_log_assert+224)
  #00  pc 000000000018ae8c  /system/lib64/libstagefright.so (android::MuxOMX::freeNode(unsigned int)+304)
  #00  pc 0000000000120a6c  /system/lib64/libstagefright.so (android::ACodec::LoadedState::onShutdown(bool)+68)
  #00  pc 0000000000120a0c  /system/lib64/libstagefright.so (android::ACodec::LoadedState::stateEntered()+224)
  #00  pc 00000000000132b4  /system/lib64/libstagefright_foundation.so (android::AHierarchicalStateMachine::changeState(android::sp<android::AState> const&)+540)
  #00  pc 00000000001246f4  /system/lib64/libstagefright.so (android::ACodec::IdleToLoadedState::onOMXEvent(OMX_EVENTTYPE, unsigned int, unsigned int)+140)
  #00  pc 000000000011c5dc  /system/lib64/libstagefright.so (android::ACodec::BaseState::onOMXMessage(android::sp<android::AMessage> const&)+756)
  #00  pc 0000000000012f98  /system/lib64/libstagefright_foundation.so (android::AHierarchicalStateMachine::handleMessage(android::sp<android::AMessage> const&)+136)
  #00  pc 000000000011c1f4  /system/lib64/libstagefright.so (android::ACodec::BaseState::onOMXMessageList(android::sp<android::AMessage> const&)+184)
  #00  pc 000000000011be20  /system/lib64/libstagefright.so (android::ACodec::BaseState::onMessageReceived(android::sp<android::AMessage> const&)+592)
  #00  pc 0000000000012f98  /system/lib64/libstagefright_foundation.so (android::AHierarchicalStateMachine::handleMessage(android::sp<android::AMessage> const&)+136)
  #00  pc 0000000000012d04  /system/lib64/libstagefright_foundation.so (android::AHandler::deliverMessage(android::sp<android::AMessage> const&)+52)
  #00  pc 0000000000016aa0  /system/lib64/libstagefright_foundation.so (android::AMessage::deliver()+112)
  #00  pc 0000000000013e3c  /system/lib64/libstagefright_foundation.so (android::ALooper::loop()+480)
  #00  pc 0000000000014694  /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+272)
  #00  pc 000000000006a1dc  /system/lib64/libc.so (__pthread_start(void*)+208)
  #00  pc 000000000001db28  /system/lib64/libc.so (__start_thread+16)

Code:
backtrace:
  #00  pc 00000000024ce0fa  /data/app/com.google.android.webview-5npkyBQBV5C7Xv_FBRwiKA==/lib/arm/libwebviewchromium.so
  #00  pc 00000000021f96c7  /data/app/com.google.android.webview-5npkyBQBV5C7Xv_FBRwiKA==/lib/arm/libwebviewchromium.so
  #00  pc 00000000019e7cdb  /data/app/com.google.android.webview-5npkyBQBV5C7Xv_FBRwiKA==/lib/arm/libwebviewchromium.so
  #00  pc 00000000021f967b  /data/app/com.google.android.webview-5npkyBQBV5C7Xv_FBRwiKA==/lib/arm/libwebviewchromium.so
  #00  pc 00000000019e7cdb  /data/app/com.google.android.webview-5npkyBQBV5C7Xv_FBRwiKA==/lib/arm/libwebviewchromium.so
  #00  pc 00000000019e76ad  /data/app/com.google.android.webview-5npkyBQBV5C7Xv_FBRwiKA==/lib/arm/libwebviewchromium.so
  #00  pc 00000000019e7693  /data/app/com.google.android.webview-5npkyBQBV5C7Xv_FBRwiKA==/lib/arm/libwebviewchromium.so (Java_J_N_MLlibBXh+10)
  #00  pc 00000000001f746d  /data/app/com.google.android.webview-5npkyBQBV5C7Xv_FBRwiKA==/oat/arm/base.odex (offset 0x1a3000) (J.N.M6H_IiaF [DEDUPED]+116)
  #00  pc 000000000034c54b  /data/app/com.google.android.webview-5npkyBQBV5C7Xv_FBRwiKA==/oat/arm/base.odex (offset 0x1a3000) (org.chromium.base.JavaExceptionReporter.uncaughtException+66)
  #00  pc 0000000000418375  /system/lib/libart.so (art_quick_invoke_stub_internal+68)
  #00  pc 00000000003f1957  /system/lib/libart.so (art_quick_invoke_stub+226)
  #00  pc 00000000000a1031  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136)
  #00  pc 00000000001e8835  /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+232)
  #00  pc 00000000001e3511  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+776)
  #00  pc 00000000003ed14d  /system/lib/libart.so (MterpInvokeInterface+1020)
  #00  pc 000000000040b294  /system/lib/libart.so (ExecuteMterpImpl+14740)
  #00  pc 0000000000172f00  /system/framework/boot.vdex (java.lang.ThreadGroup.uncaughtException+32)
  #00  pc 00000000001c7e89  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.1571629081)+352)
  #00  pc 00000000001cc757  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146)
  #00  pc 00000000001e34fb  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+754)
  #00  pc 00000000003ee9c3  /system/lib/libart.so (MterpInvokeVirtualQuick+422)
  #00  pc 000000000040ee14  /system/lib/libart.so (ExecuteMterpImpl+29972)
  #00  pc 0000000000172eec  /system/framework/boot.vdex (java.lang.ThreadGroup.uncaughtException+12)
  #00  pc 00000000001c7e89  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.1571629081)+352)
  #00  pc 00000000001cc757  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146)
  #00  pc 00000000001e34fb  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+754)
  #00  pc 00000000003ed14d  /system/lib/libart.so (MterpInvokeInterface+1020)
  #00  pc 000000000040b294  /system/lib/libart.so (ExecuteMterpImpl+14740)
  #00  pc 00000000001731ea  /system/framework/boot.vdex (java.lang.Thread.dispatchUncaughtException+30)
  #00  pc 00000000001c7e89  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.1571629081)+352)
  #00  pc 00000000001cc6a3  /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+82)
  #00  pc 00000000003dfdc3  /system/lib/libart.so (artQuickToInterpreterBridge+890)
  #00  pc 000000000041c8ff  /system/lib/libart.so (art_quick_to_interpreter_bridge+30)
  #00  pc 0000000000418375  /system/lib/libart.so (art_quick_invoke_stub_internal+68)
  #00  pc 00000000003f1957  /system/lib/libart.so (art_quick_invoke_stub+226)
  #00  pc 00000000000a1031  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136)
  #00  pc 00000000003510dd  /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52)
  #00  pc 0000000000352085  /system/lib/libart.so (art::InvokeVirtualOrInterfaceWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+316)
  #00  pc 000000000027872f  /system/lib/libart.so (art::JNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+482)
  #00  pc 00000000001b16cb  /system/lib/libart.so (_JNIEnv::CallVoidMethod(_jobject*, _jmethodID*, ...)+38)
  #00  pc 000000000037ec3f  /system/lib/libart.so (art::Thread::HandleUncaughtExceptions(art::ScopedObjectAccessAlreadyRunnable&)+278)
  #00  pc 000000000037e277  /system/lib/libart.so (art::Thread::Destroy()+1142)
  #00  pc 000000000038db1d  /system/lib/libart.so (art::ThreadList::Unregister(art::Thread*)+100)
  #00  pc 0000000000373cb1  /system/lib/libart.so (art::Thread::CreateCallback(void*)+1628)
  #00  pc 0000000000063c15  /system/lib/libc.so (__pthread_start(void*)+22)
  #00  pc 000000000001e065  /system/lib/libc.so (__start_thread+22)

Code:
backtrace:
  #00  pc 000000000001ce72  /system/lib/libc.so (abort+62)
  #00  pc 00000000003574ef  /system/lib/libart.so (art::Runtime::Abort(char const*)+798)
  #00  pc 00000000000071c7  /system/lib/libbase.so (android::base::LogMessage::~LogMessage()+502)
  #00  pc 000000000037d1ab  /system/lib/libart.so (art::Thread::AssertNoPendingException() const+854)
  #00  pc 00000000000dd3b9  /system/lib/libart.so (art::ClassLinker::FindClass(art::Thread*, char const*, art::Handle<art::mirror::ClassLoader>)+28)
  #00  pc 00000000000f189f  /system/lib/libart.so (art::ClassLinker::DoResolveType(art::dex::TypeIndex, art::Handle<art::mirror::DexCache>, art::Handle<art::mirror::ClassLoader>)+122)
  #00  pc 000000000039ecef  /system/lib/libart.so (art::verifier::MethodVerifier::ScanTryCatchBlocks()+382)
  #00  pc 000000000039c0c7  /system/lib/libart.so (art::verifier::MethodVerifier::Verify()+522)
  #00  pc 000000000039e8ad  /system/lib/libart.so (art::verifier::MethodVerifier::FindLocksAtDexPc()+88)
  #00  pc 000000000039e7eb  /system/lib/libart.so (art::verifier::MethodVerifier::FindLocksAtDexPc(art::ArtMethod*, unsigned int, std::__1::vector<art::verifier::MethodVerifier::DexLockInfo, std::__1::allocator<art::verifier::MethodVerifier::DexLockInfo>>*)+378)
  #00  pc 00000000002df58b  /system/lib/libart.so (art::Monitor::VisitLocks(art::StackVisitor*, void (*)(art::mirror::Object*, void*), void*, bool)+286)
  #00  pc 000000000038586f  /system/lib/libart.so (art::MonitorObjectsStackVisitor::VisitFrame()+98)
  #00  pc 000000000036b087  /system/lib/libart.so (void art::StackVisitor::WalkStack<(art::StackVisitor::CountTransitions)0>(bool)+506)
  #00  pc 000000000037c327  /system/lib/libart.so (art::Thread::DumpJavaStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, bool) const+226)
  #00  pc 0000000000378dd1  /system/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+224)
  #00  pc 00000000003753df  /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+34)
  #00  pc 000000000038e6eb  /system/lib/libart.so (art::DumpCheckpoint::Run(art::Thread*)+674)
  #00  pc 0000000000388c21  /system/lib/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+1136)
  #00  pc 0000000000387fd1  /system/lib/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool)+792)
  #00  pc 000000000035732b  /system/lib/libart.so (art::Runtime::Abort(char const*)+346)
  #00  pc 00000000000071c7  /system/lib/libbase.so (android::base::LogMessage::~LogMessage()+502)
  #00  pc 0000000000269fb7  /system/lib/libart.so (art::JNI::FatalError(_JNIEnv*, char const*)+126)
  #00  pc 00000000000c373d  /system/lib/libandroid_runtime.so (report_exception(_JNIEnv*, _jthrowable*, char const*)+500)
  #00  pc 00000000000c334b  /system/lib/libandroid_runtime.so (JavaBBinder::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+134)
  #00  pc 00000000000361cf  /system/lib/libbinder.so (android::BBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+70)
  #00  pc 000000000003da17  /system/lib/libbinder.so (android::IPCThreadState::executeCommand(int)+410)
  #00  pc 000000000003d7a3  /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+106)
  #00  pc 000000000003dccb  /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+38)
  #00  pc 000000000005470d  /system/lib/libbinder.so (android::PoolThread::threadLoop()+12)
  #00  pc 000000000000c197  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+166)
  #00  pc 000000000006f1ef  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+82)
  #00  pc 0000000000063c15  /system/lib/libc.so (__pthread_start(void*)+22)
  #00  pc 000000000001e065  /system/lib/libc.so (__start_thread+22)
 

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones