在 Google Play Console 中报告 libminikin.so 发生崩溃

问题描述 投票:0回答:1

我在 Google Play 商店中有一个应用程序,每隔几周,我就会在 Google Play Console 中看到带有本机堆栈的崩溃报告,如下所示:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> sk.mimac.slideshow <<<

backtrace:
  #00  pc 000000000001ce72  /system/lib/libc.so (abort+62)
  #01  pc 00000000000169e8  /system/lib/libminikin.so (abort_with_message(char const*)+24)
  #02  pc 0000000000016a44  /system/lib/libminikin.so (__ubsan_handle_add_overflow_minimal_abort+24)
  #03  pc 000000000000f22b  /system/lib/libminikin.so (void minikin::LayoutCache::getOrCreate<minikin::LayoutAppendFunctor>(minikin::U16StringPiece const&, minikin::Range const&, minikin::MinikinPaint const&, bool, minikin::StartHyphenEdit, minikin::EndHyphenEdit, minikin::LayoutAppendFunctor&)+542)
  #04  pc 000000000000ed2d  /system/lib/libminikin.so (minikin::Layout::doLayoutWord(unsigned short const*, unsigned int, unsigned int, unsigned int, bool, minikin::MinikinPaint const&, unsigned int, minikin::StartHyphenEdit, minikin::EndHyphenEdit, minikin::LayoutPieces const*, minikin::Layout*, float*, minikin::MinikinExtent*, minikin::MinikinRect*, minikin::LayoutPieces*)+204)
  #05  pc 000000000000e8d5  /system/lib/libminikin.so (minikin::Layout::doLayoutRunCached(minikin::U16StringPiece const&, minikin::Range const&, bool, minikin::MinikinPaint const&, unsigned int, minikin::StartHyphenEdit, minikin::EndHyphenEdit, minikin::LayoutPieces const*, minikin::Layout*, float*, minikin::MinikinExtent*, minikin::MinikinRect*, minikin::LayoutPieces*)+244)
  #06  pc 000000000000ec09  /system/lib/libminikin.so (minikin::Layout::measureText(minikin::U16StringPiece const&, minikin::Range const&, minikin::Bidi, minikin::MinikinPaint const&, minikin::StartHyphenEdit, minikin::EndHyphenEdit, float*, minikin::MinikinExtent*, minikin::LayoutPieces*)+140)
  #07  pc 00000000000890fd  /system/lib/libhwui.so (android::MinikinUtils::measureText(android::Paint const*, minikin::Bidi, android::Typeface const*, unsigned short const*, unsigned int, unsigned int, unsigned int, float*)+76)
  #08  pc 00000000000d9813  /system/lib/libandroid_runtime.so (android::PaintGlue::getRunAdvance___CIIIIZI_F(_JNIEnv*, _jclass*, long long, _jcharArray*, int, int, int, int, unsigned char, int)+202)
  #09  pc 00000000003b3ce3  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.graphics.Paint.nGetRunAdvance+178)
  #10  pc 00000000006f0725  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.graphics.Paint.getRunAdvance+172)
  #11  pc 00000000006f05c3  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.graphics.Paint.getRunAdvance+250)
  #12  pc 0000000000973fb9  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.text.TextLine.getRunAdvance+128)
  #13  pc 0000000000974ea9  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.text.TextLine.handleText+312)
  #14  pc 0000000000974b67  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.text.TextLine.handleRun+2326)
  #15  pc 0000000000975ab1  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.text.TextLine.measure+216)
  #16  pc 0000000000975fdd  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.text.TextLine.metrics+44)
  #17  pc 0000000000968631  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.text.Layout.getLineExtent+392)
  #18  pc 000000000096a8bf  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.text.Layout.drawText+2006)
  #19  pc 0000000000969b31  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.text.Layout.draw+128)
  #20  pc 0000000000b456fd  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.widget.TextView.onDraw+2804)
  #21  pc 0000000000a7a98b  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.View.draw+202)
  #22  pc 0000000000a91ec9  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.View.updateDisplayListIfDirty+944)
  #23  pc 0000000000a7b78f  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.View.draw+1014)
  #24  pc 0000000000b1c4cf  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.ViewGroup.drawChild+54)
  #25  pc 0000000000b19a4b  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.ViewGroup.dispatchDraw+1290)
  #26  pc 0000000000a7a99b  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.View.draw+218)
  #27  pc 0000000000a91ec9  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.View.updateDisplayListIfDirty+944)
  #28  pc 0000000000b1a0d7  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.ViewGroup.dispatchGetDisplayList+182)
  #29  pc 0000000000a91c0f  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.View.updateDisplayListIfDirty+246)
  #30  pc 0000000000b1a0d7  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.ViewGroup.dispatchGetDisplayList+182)
  #31  pc 0000000000a91c0f  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.View.updateDisplayListIfDirty+246)
  #32  pc 0000000000b1a0d7  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.ViewGroup.dispatchGetDisplayList+182)
  #33  pc 0000000000a91c0f  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.View.updateDisplayListIfDirty+246)
  #34  pc 0000000000b1a0d7  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.ViewGroup.dispatchGetDisplayList+182)
  #35  pc 0000000000a91c0f  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.View.updateDisplayListIfDirty+246)
  #36  pc 0000000000b1a0d7  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.ViewGroup.dispatchGetDisplayList+182)
  #37  pc 0000000000a91c0f  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.View.updateDisplayListIfDirty+246)
  #38  pc 00000000009ba3f5  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.ThreadedRenderer.updateViewTreeDisplayList+76)
  #39  pc 00000000009ba155  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.ThreadedRenderer.updateRootDisplayList+212)
  #40  pc 00000000009ba4c9  /system/framework/arm/boot-framework.oat (offset 0x3ac000) (android.view.ThreadedRenderer.draw+168)
  #41  pc 000000000002b915  /dev/ashmem/dalvik-jit-code-cache (deleted)
  • 到目前为止,我还无法重现这个错误/问题/崩溃
  • 类似的报告来自各种设备,其中大部分是 Android 9(尽管这可能只是巧合)
  • “sk.mimac.slideshow”是我的应用程序的包
  • “libminikin”显然是一些 Android 库,尽管我不知道它是做什么的

有什么方法可以找出导致这次崩溃的原因吗?

android android-ndk google-play-console android-native-library
1个回答
0
投票

谷歌在新系统版本中已经解决了这个问题。 32 位无符号整数可能不够,并且 UB 消毒剂 使长时间运行的应用程序崩溃。 链接https://cs.android.com/android/_/android/platform/frameworks/minikin/+/3744ee60df8c682d28790f4e02a83c0954a11899

© www.soinside.com 2019 - 2024. All rights reserved.