有什么方法可以防止或处理 Android 应用程序中的本机崩溃吗?

zee*_*ali 5 android abort android-ndk flutter google-play-console

在我的 Flutter 应用程序中,我在 Google Play Console 上收到了以下崩溃日志,这是一次本机崩溃。我无法完全理解它。这个 Flutter 应用程序也有 android java 代码。在崩溃日志中,它指向我的 android java 代码 com.xxxx.xxx,我已经在其中处理了异常和错误。


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)
Run Code Online (Sandbox Code Playgroud)

我知道中止和信号崩溃,由于此类崩溃,应用程序甚至在应用程序代码处理崩溃之前就崩溃了。有什么方法可以防止或处理本机崩溃(C、C++)?