In my Flutter app, I got following crash log at Google Play Console which is a native crash. I am not able to understand it fully. This Flutter app has android java code as well. In the crash log, it is pointing to my android java code com.xxxx.xxx where I have already handled the Exception and Error.
pid: 0, tid: 0 >>> com.xxxx.xxxx <<<
backtrace:
#00 pc 000000000005f356 /apex/com.android.runtime/lib/bionic/libc.so (abort+166)
#00 pc 0000000000021d38 /system/lib/libinput.so (abort_with_message(char const*)+24)
#00 pc 0000000000021d7c /system/lib/libinput.so (ubsan_handle_sub_overflow_minimal_abort+24)
#00 pc 0000000000012cb9 /system/lib/libinput.so (android::MotionEvent::getAxisValue(int, unsigned int) const+236)
#00 pc 0000000002202d19 /system/framework/arm/boot-framework.oat (art_jni_trampoline+128)
#00 pc 000000000204b00d /memfd:/jit-cache (com.xxxx.d.a.a.a+1484)
#00 pc 00000000000d7bc5 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68)
#00 pc 000000000042e457 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub+250)
#00 pc 00000000000dffb7 /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+174)
#00 pc 0000000000210a09 /apex/com.android.runtime/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+280)
#00 pc 000000000020d009 /apex/com.android.runtime/lib/libart.so (bool art::interpreter::DoCall<true, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+524)
#00 pc 0000000000427ee5 /apex/com.android.runtime/lib/libart.so (MterpInvokeDirectRange+240)
#00 pc 00000000000d2c14 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_direct_range+20)
#00 pc 00000000009188d2 /data/app/com.xxxx.xxxx-s9KFO5IYGTIBXr0bo3dYLA==/oat/arm/base.vdex (com.xxxx.d.a.a.<init>+42)
#00 pc 00000000004280b5 /apex/com.android.runtime/lib/libart.so (MterpInvokeDirectRange+704)
#00 pc 00000000000d2c14 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_direct_range+20)
#00 pc 000000000092b4e4 /data/app/com.xxxx.xxxx-s9KFO5IYGTIBXr0bo3dYLA==/oat/arm/base.vdex (com.xxxx.services.xxxx.f.a+44)
#00 pc 0000000000425edf /apex/com.android.runtime/lib/libart.so (MterpInvokeStatic+910)
#00 pc 00000000000d2994 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_static+20)
#00 pc 0000000000929e42 /data/app/com.xxxx.xxxx-s9KFO5IYGTIBXr0bo3dYLA==/oat/arm/base.vdex (com.xxxx.services.xxxx.f$17.run+54)
#00 pc 00000000001ec285 /apex/com.android.runtime/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.4051875684531665263)+192)
#00 pc 00000000001f0a69 /apex/com.android.runtime/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+124)
#00 pc 0000000000417fc9 /apex/com.android.runtime/lib/libart.so (artQuickToInterpreterBridge+808)
#00 pc 00000000000dc5a1 /apex/com.android.runtime/lib/libart.so (art_quick_to_interpreter_bridge+32)
#00 pc 000000000138be01 /system/framework/arm/boot-framework.oat (android.os.Handler.dispatchMessage+64)
#00 pc 0000000001392dbf /system/framework/arm/boot-framework.oat (android.os.Looper.loop+1302)
I am aware about abort and signal crashes, due to such crashes app gets crashed even before the application code handles the crash. Is there any way we can prevent or handle the native crashes (C, C++)?