You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 13设备getHistoricalRawPointerCoords索引无效崩溃原因排查

Android 13设备偶发SIGABRT崩溃排查记录

崩溃基本情况

不同Android 13设备上偶发以下崩溃:

[libc.so] abort
SIGABRT

线程信息:

getHistoricalRawPointerCoords: Invalid historical index 1 for MotionEvent { action=UP, id[0]=0, x[0]=810.527, y[0]=1609.98, eventTime=232287463228000, downTime=232287242045000, deviceId=3, source=TOUCHSCREEN, displayId=0, eventId=<US_SOCIAL_SECURITY_NUMBER>}

注:应用与美国社保无关,未访问用户账户信息或使用第三方广告包。

调用栈

#00  pc 0x0000000000051ce8  /apex/com.android.runtime/lib64/bionic/libc.so (abort+164)
  #01  pc 0x00000000006f9f28  /apex/com.android.art/lib64/libart.so (art::Runtime::Abort(char const*)+472)
  #02  pc 0x0000000000016ea8  /apex/com.android.art/lib64/libbase.so (android::base::SetAborter(std::__1::function<void (char const*)>&&)::$_3::__invoke(char const*)+80)
  #03  pc 0x00000000000a3090  /system/lib64/libbinder.so (android::base::LogMessage::~LogMessage()+352)
  #04  pc 0x000000000002a824  /system/lib64/libinput.so (android::MotionEvent::getHistoricalRawPointerCoords(unsigned long, unsigned long) const+504)
  #05  pc 0x000000000002a578  /system/lib64/libinput.so (android::MotionEvent::getHistoricalRawAxisValue(int, unsigned long, unsigned long) const+28)
  #06  pc 0x0000000000048c40  /system/lib64/libinput.so (android::VelocityTracker::addMovement(android::MotionEvent const*)+496)
  #07  pc 0x00000000002f0384  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+132)
  #08  pc 0x0000000000c93f14  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.view.VelocityTracker.addMovement+68)
  #09  pc 0x0000000000c80bb4  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.view.GestureDetector.onTouchEvent+660)
  #10  pc 0x0000000000c924d0  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.view.ScaleGestureDetector.onTouchEvent+176)
  #11  pc 0x000000000020a2b0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016)

相关代码

relativeLayoutFoo.setOnTouchListener((v, event) -> {
    try {
        if (event == null) {
            return false;
        } else {
            //consume event
  
        }
    } catch (Exception ex) {
        
    }
    return false;
}); 

排查过程更新

更新[2023-05-26]

已修改代码通过MotionEvent.obtain(event)仅消费MotionEvent副本,但无改善。该崩溃仅出现在Android 13设备上,截图显示受影响设备均为Android 13版本。该问题疑似与Android官方已知的输入系统问题相关。

更新[2023-10-01]

附另一Android 13设备的崩溃报告,其eventId为2097529323而非<US_SOCIAL_SECURITY_NUMBER>:

Thread: getHistoricalRawPointerCoords: Invalid array index 6 for MotionEvent { action=POINTER_DOWN(3), id[0]=1, x[0]=748.557, y[0]=1198.73, id[1]=2, x[1]=728.326, y[1]=1627.55, id[2]=3, x[2]=295.227, y[2]=1446.13, id[3]=6, x[3]=633.913, y[3]=1036.8, pointerCount=4, eventTime=15864785755000, downTime=15491031632000, deviceId=2, source=TOUCHSCREEN, displayId=0, eventId=2097529323}

backtrace:
  #00  pc 0x0000000000062eee  /apex/com.android.runtime/lib/bionic/libc.so (abort+138)
  #01  pc 0x00000000005406db  /apex/com.android.art/lib/libart.so (art::Runtime::Abort(char const*)+1406)
  #02  pc 0x00000000000238ad  /apex/com.google.mainline.primary.libs@340817060/lib/libbase.so/23d1f2e6ffbc35ebafef6e31362a3ad20b7abe9823895afd2d10c652dbdbbe07db02a7a5f2db936dc8c8553a986dd6324be678f3d22e389cd8261ae6d5bcecc3/libbase.so (android::base::SetAborter(std::__1::function<void (char const*)>&&)::$_0::__invoke(char const*)+48)
  #03  pc 0x0000000000071b5d  /system/lib/libbinder.so (android::base::LogMessage::~LogMessage()+228)
  #04  pc 0x00000000000206e1  /system/lib/libinput.so (android::MotionEvent::getHistoricalRawPointerCoords(unsigned int, unsigned int) const+456)
  #05  pc 0x000000000002047d  /system/lib/libinput.so (android::MotionEvent::getRawAxisValue(int, unsigned int) const+36)
  #06  pc 0x000000000033d3b5  /data/misc/apexdata/com.android.art/dalvik-cache/arm/boot.oat (art_jni_trampoline+60)
  #07  pc 0x0000000000b8bd4d  /data/misc/apexdata/com.android.art/dalvik-cache/arm/boot.oat (android.view.MotionEvent.getRawX+156)
  #08  pc 0x0000000000a69aa7  /data/misc/apexdata/com.android.art/dalvik-cache/arm/boot.oat (android.view.GestureDetector.onTouchEvent+438)

更新[2024-07-08]

移除标准双击检测代码后,该问题得到解决,疑似与手势检测的系统兼容性问题相关。


内容的提问来源于stack exchange,提问作者Hong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 02:39:55